[edit]g++et link avec une librairie statique

g++et link avec une librairie statique [edit] - C++ - Programmation

Marsh Posté le 01-11-2007 à 21:32:50    

J'ai une librairie c++ générée par le compilateur matlab appelée mettons essai
Je cherche a faire un programme c++ appelant cette librairie, je fait :

 
Code :
  1. g++ main.cpp -I/opt/matlab/extern/include/cpp -I/opt/matlab/extern/include -L. -lessai
 

Et je recois :

 
Code :
  1. /usr/bin/ld: cannot find -lessai
  2. collect2: ld a retourné 1 code d'état d'exécution
 

Pourtant les infos que j'ai pu trouver sur le net précisent que une syntaxe correcte ! Je précise que (pour le moment, juste pour éliminer toutes les sources possibles d'ereur) j'ai main.cpp et essai (ma lib) qui sont dans le meme répertoire. Le .h de la lib l'est aussi !

 

Une idée de comment faire ?

 

[edit] Maintenant que tout marche... lorsque je lance mon programme, il cherche la librairie linkée dans le répertoire "en dur" (pour moi src/lib/libessai.a)
Or, si je distribue ce programme (c'est pas le cas avant un bout mais ca viendra) ce répertoire ne sera pas forcément le meme... Commen la recherche des librairies se fait elle ? En fonction de la variable PATH (ou LD_LIBRARY_PATH sous linux ) ?

 

Merci pour ce petit éclarage


Message édité par guepe le 02-11-2007 à 15:47:46

---------------
Un blog qu'il est bien
Reply

Marsh Posté le 01-11-2007 à 21:32:50   

Reply

Marsh Posté le 01-11-2007 à 21:49:28    

Ta lib doit porter le nom "libessai.a". Est-ce bien le cas?

Reply

Marsh Posté le 01-11-2007 à 21:53:36    

Ace17 a écrit :

Ta lib doit porter le nom "libessai.a". Est-ce bien le cas?


 :whistle: tutuuutututuuuuuuuu....

 

Regarder ailleurs, faire semblant de n'avoir rien dit, accuser le voisin...  [:jayz]
Bon il me manque d'autres lib (rapport à matlab) mais il trouve la lib maintenant !  [:al_bundy]

 

[edit] Ca compile !!


Message édité par guepe le 01-11-2007 à 23:48:06

---------------
Un blog qu'il est bien
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed