Forum Programmation.c++ Integrer les librairies lors de la compilation

Posté par  .
Étiquettes : aucune
0
12
juil.
2005
Salut à tous,

J'aimerais compiler un programme en y integrant un certain nombre de librairies (même si l'executable devient enorme, peu m'importe...).

Ma ligne de compilation est :
g++ -lcvaux -lcv -lcxcore -lhighgui test1.cpp Image.o Objet.o -o test1

En gros j'aimerais integrer les 4 librairies (en .so) référencé dans mon edition des liens directement dans l'executable si c'était possible, de facon a m'affranchir de leur presence sur la machine sur laquelle j'execute mon appli...

Merci d'avance
  • # linkage static

    Posté par  . Évalué à 5.

    ce que tu demande c'est du linkage statique.

    methode brutale :
    g++ -o test1 test1.cpp Image.o Objet.o /usr/lib/libcvaux.a /usr/lib/libcv.a /usr/lib/libcxcore.a /usr/lib/highgui.a
    c'est a dire comme si tu linkais avec d'autre .o

    methode soft :

    g++ -o test1 test1.cpp Image.o Objet.o -Bstatic -lcvaux -lcv -lcxcore -lhighgui

    (-Bstatic ou -static ou -dn voir le man )
    • [^] # Re: linkage static

      Posté par  . Évalué à 2.

      Probleme avec la methode "brutale" : Je n'ai pas de fichier .a (seulement des .so et des .la)...

      J'ai essayé avec Bstatic, mais j'obtient le message : ./test1: error while loading shared libraries: libcvaux.so.0: cannot open shared object file: No such file or directory

      a l'execution...

      J'essaye avec static et dn maintenant...
    • [^] # Re: linkage static

      Posté par  . Évalué à 1.

      Bon j'ai essayé avec les autres :

      static me donne a la compilation :
      /usr/bin/ld: ne peut trouver -lcvaux
      collect2: ld a retourné 1 code d'état d'exécution
      make: *** [test1] Erreur 1

      dn, la meme erreur que Bstatic, a l'execution...

      A priori, il manque vraiment les librairies en .a...
      Comment faire alors pour trouver celle-ci (j'ai eu beau chercher sur le site d'openCV, impossible de mettre la main dessus (mais je cherche mal aussi, fo dire...)).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.