2012-01-12 6 views
6

Maintenant j'utilise eclipse CDT pour mon application C/C++, mais il y a un problème quand je lier ma bibliothèque externe, elle ne peut pas être chargée correctement au moment de l'exécution, même si je mets la bibliothèque fichier près du fichier source, j'ai donné le chemin de la bibliothèque, et son nom correctement.C++: Bibliothèque externe en eclipse CDT

répertoire du projet:

  1. comprennent (fichiers .h)
  2. source de
  3. (. Cpp fichiers ..)
  4. lib (libbozorth3.a, LSFMatcher.a)

Je veux lien que les bibliothèques statiques avec mon application Je suis ces étapes:

  1. project-> properties-> general-> path et symbols-> inclut le chemin du répertoire, et les bibliothèques (bozorth3.a, LSFMatcher.a), et ajoute le chemin de la bibliothèque.
  2. et j'ajouter aussi la même bibliothèque dans la section éditeur de liens aussi

Lorsque je construis le programme, il affiche une erreur ne peut pas trouver -lbozorth3.a ne peut pas trouver -lLSFMatcher.a

Je dois les étapes correctes pour ajouter la bibliothèque externe à l'application c/C++.

+0

Avez-vous envisagé: http://stackoverflow.com/questions/8370809/how-to-add-a-library-to-eclipse-c-project? – Dyonisos

Répondre

12

configurer normalement

  1. la bibliothèque
  2. le chemin de recherche de la bibliothèque (nécessaire pour compilation du)
  3. le chemin de recherche d'exécution (-rpath l'option Linker)

(voir images ci-dessous et remplacez le chemin dans les indicateurs de liaison par celui que vous avez utilisé dans le chemin de recherche de la bibliothèque)

Library Search path Linker options for runtime search path

1

vous devez utiliser -Wl,-rpath=${workspace_loc}/Liball et non -Wl,-rpath,${workspace_loc}/Liball.

Toujours sous bibliothèque -l option ajouter bibliothèque comme par exemple. pour libgcc.a ajouter seulement gcc

+0

Ce n'est pas une réponse complète. Cela dépend de la réponse offerte par FSaccilotto. Peut-être que vous devriez le déplacer vers un commentaire afin qu'il puisse corriger son message, ou vous devriez ajouter plus de détails à la vôtre afin que ce soit une réponse complète. – Dzyann

0

Vous devriez faire attention à ce qui est entre parenthèses: Autres options (-Xlinker [option]).

La manière de passer des options est différente. Au lieu d'utiliser:

-Wl,-rpath,'${ProjDirPath}/../../system/lib' 

Vous devez utiliser:

-rpath '${ProjDirPath}/../../system/lib' 

enlver le "-Wl" et remplacer le second "" par "" (espace).

enter image description here

enter image description here

Questions connexes