Est-il un équivalent Linux de Windows' “fichiers de ressources”?

J'ai une bibliothèque C, que j'ai construire comme un objet partagé pour Linux et une DLL pour Windows avec MinGW32. L'API dépend d'un couple de fichiers de données (modèles statistiques) qui je tiens vraiment à les rouler dans le SO/DLL afin que le déploiement est juste un fichier.

On dirait que je puisse réaliser ce pour Windows avec un "fichier de ressources" compilé avec windres, mais ensuite, j'ai à écrire un tas de ressources de manipulation de code pour Windows, et je suis toujours coincé avec les fichiers sur Linux.

Est-il un moyen pour obtenir la même fonctionnalité sur Linux?

Encore mieux, est-il une solution portable?

  • Similaire (possible dup): stackoverflow.com/questions/1656968/... et peut-être d'autres, mais c'est un difficile sujet de la recherche...
  • Pas de vote pour fermer, cependant, la réponse à la question existante ne sont que peu utiles.
  • Il aiderait énormément si vous pouviez nous dire ce qu' (portable) code que vous voulez écrire pour obtenir l'accès aux fichiers de données. fopen et fread simplement ne fonctionnera pas sur les blocs de la mémoire, du moins pas sur n'importe quel système je suis au courant de.
  • Je suis à l'aide de C++ pour mettre en œuvre la bibliothèque (bien qu'il n'exporte que les fonctions C, pour ABI compatibilité) donc je peux juste à construire une stringstream à partir de données binaires et puis, il agit comme un fichier de toute façon. Il est également intéressant de noter que, avec l'avr-libc (et probablement d'autres libcs ciblées sur les microcontrôleurs) vous pouvez réellement faire fread() de travail sur l'arbitraire des blocs de mémoire (ou autre chose) en fournissant votre propre getc() et putc() via des pointeurs de fonction à la fdevopen() fonction (fopen() n'a pas beaucoup de sens sans un OS, et encore moins un système de fichiers).
  • Double Possible de C/C++ avec GCC: Statique ajouter des fichiers de ressources de l'exécutable/library
InformationsquelleAutor cibyr | 2010-01-04