2010-06-02 3 views
4

propriétés/C/C++ Construction/Paramètres GCC C++ Linker/Bibliothèquesne peut pas trouver les fichiers de bibliothèque dans Eclipse cdt

Sous les bibliothèques (-I) Je libbost_system libbost_filesystem ... et sous la recherche Bibliothèque chemin (-L) je /home/etobkru/boost_1_43_0/boostBinaries/lib

mais quand je compile je reçois g ++ -L/home/etobkru/boost_1_43_0/boostBinaries/lib/-o "searchDirs" ./ main.o -llibboost_system -llibboost_filesystem -llibboost_regex /us r/lib/gcc/i586-linux-suse/4.1.2 /../../../../-i586-linux suse/bin/ld: ne peut pas trouver -llibboost_system

Je essayé avec libbost_system.so et libbost_system.a mais j'ai la même erreur. Qu'est-ce que je fais mal et pourquoi ne peux pas éclipser trouver les fichiers. Parce qu'ils sont là?

+0

double possible [/ usr/bin/ld: ne peut pas trouver -llibeststring.a] (http://stackoverflow.com/questions/2947239/usr-bin-ld-cannot-find- llibeststring-a) – Troubadour

Répondre

9

Vous n'avez pas besoin de la partie "lib" dans le nom. lien juste avec

-lboost_system -lboost_filesystem -lboost_regex 
+0

merci cela fonctionne :) – hidayat

1

Je sais que c'est un peu après coup, mais vous pouvez essayer -l: libbost_system.so et il cherchera une bibliothèque avec exactement ce nom.

1

En fait, après beaucoup de frustration j'ai décidé de lire la page de manuel pour ld! Ajoutez l'archive ou le fichier objet spécifié par namespec à la liste des fichiers à lier. Cette option peut être utilisée n'importe quel nombre de fois. Si namespec est de la forme: filename, ld recherchera dans le chemin de la bibliothèque un fichier appelé nom de fichier, sinon il cherchera dans le chemin de la bibliothèque un fichier appelé libnamespec.a.

depuis ma bibliothèque spécifique était quelque chose dans le sens de myfoobar.dll rien n'a fonctionné jusqu'à ce que je me suis rendu compte que je voulais utiliser le nom de fichier réel. Comme d'autres ont posté avec des captures d'écran comment ajouter la bibliothèque à l'éditeur de liens tout ce que je devais faire était de changer 'myfoobar' dans le champ ': myfoobar.dll' et ça a bien fonctionné.

Vous devez utiliser ':' pour obtenir des informations plus précises sur le nom de fichier à rechercher et rester à l'écart de la mise en forme de nom de fichier par défaut attendue sans elle. J'espère que cela facilite la frustration.

Krusty,

Questions connexes