OVH Cloud OVH Cloud

généré un fichier objet .o

4 réponses
Avatar
Piezo
Bonjour,

J'espère ne pas être trop HS...

j'écris un outils permettant d'intégrer un fichier binaire dans un
projet c++ (sans ressources...). Pour l'instant, mon programme créer un
fichier c contenant un tableau de chars qui comporte le contenu du
fichier, et une variable qui contient la longueur du fichier.
Malheureusement, quand je veut traiter des fichiers de plusieurs Mo, la
compilation du fichier généré est très longue...
Je souhaiterais donc de créer directement un fichier objet .o contenant
mon tableau et ma vairiable. J'ai bien trouvé des librairies permettant
d'accomplir cette tâche. Notamment LibElf, mais sa compilation avec les
outils de cygwin, m'a pondu un libelf.a de 1 364Ko...

Je recherche donc une documentation sur les fichiers ELF avec des
exemples de code (si possible en français).

Merci d'avance.

--
Piezo

4 réponses

Avatar
kanze
Piezo wrote:

J'espère ne pas être trop HS...

j'écris un outils permettant d'intégrer un fichier binaire
dans un projet c++ (sans ressources...). Pour l'instant, mon
programme créer un fichier c contenant un tableau de chars qui
comporte le contenu du fichier, et une variable qui contient
la longueur du fichier. Malheureusement, quand je veut traiter
des fichiers de plusieurs Mo, la compilation du fichier généré
est très longue...
Je souhaiterais donc de créer directement un fichier objet
.o contenant mon tableau et ma vairiable. J'ai bien trouvé des
librairies permettant d'accomplir cette tâche. Notamment
LibElf, mais sa compilation avec les outils de cygwin, m'a
pondu un libelf.a de 1 364Ko...


Si c'est la taille de la bibliothèque qui sert à générer l'ELF,
qu'importe. Il y a probablement beaucoup là dedans qui ne te
sert pas, et qui ne serait donc pas linké avec ton programme.

Si c'est la taille des données que tu as généré en format ELF,
que dire ? ELF (ni aucun autre format objet) n'est pas sans
coût ; il contient non seulement les données à charger, mais
aussi des méta-informations. Là aussi, beaucoup de ces
informations disparaissent (ou peuvent disparaître) dans le
fichier exécutable.

Je recherche donc une documentation sur les fichiers ELF
avec des exemples de code (si possible en français).


Ça doit exister, mais est-ce que tu es sûr de pouvoir faire
mieux que les auteurs de libelf ?

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

Avatar
Piezo
Merci pour cette réponse.

Si c'est la taille de la bibliothèque qui sert à générer l'ELF,
qu'importe. Il y a probablement beaucoup là dedans qui ne te
sert pas, et qui ne serait donc pas linké avec ton programme.



C'est effectivement la taille de LibElf dont je parle. Et tout compte
fais, je vais sans doute l'utiliser, car comme tu la dis, j'en
utiliserais qu'une infime partie.
Mais par contre, je n'ai trouvé que très peux de documentation sur
cette librairie. Le site officiel ( http://www.mr511.de/software/ ) n'en
contient aucune!

Avatar
kanze
Piezo wrote:
Merci pour cette réponse.

Si c'est la taille de la bibliothèque qui sert à générer
l'ELF, qu'importe. Il y a probablement beaucoup là dedans
qui ne te sert pas, et qui ne serait donc pas linké avec
ton programme.


C'est effectivement la taille de LibElf dont je parle. Et
tout compte fais, je vais sans doute l'utiliser, car comme tu
la dis, j'en utiliserais qu'une infime partie.
Mais par contre, je n'ai trouvé que très peux de
documentation sur cette librairie. Le site officiel (
http://www.mr511.de/software/ ) n'en contient aucune!


J'ai remarqué la même chose. D'après le peu qui y est écrit, et
le README, j'ai l'impression que c'est une implémentation libre
d'une bibliothèque existante non-libre, et qu'on est censé à se
servir de la documentation de la bibliothèque non-libre.
Seulement, si on en a la documentation, on a probablement la
bilbiothèque aussi. Et donc, on n'a pas besoin de la version
libre:-).

En la supposant compatible avec la version libelf de Sun, la
documentation Sun est disponible en ligne. Essaie
http://docs.sun.com/app/docs/doc/817-0695/6mgfqgg09?q=libelf&a=view
ou
http://docs.sun.com/app/docs/doc/817-0694/6mgfphvjt?a=view pour
commencer.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Piezo
Essaie :
http://docs.sun.com/app/docs/doc/817-0695/6mgfqgg09?q=libelf&a=view
ou
http://docs.sun.com/app/docs/doc/817-0694/6mgfphvjt?a=view pour
commencer.


Merci pour ces liens!