Essayez d'inclure une bibliothèque, mais garder obtenir 'undefined reference to' messages

Je suis en essayant d'utiliser le libtommath de la bibliothèque. J'utilise NetBeans IDE pour mon projet sur Ubuntu linux. J'ai téléchargé et construit la bibliothèque, j'ai fait un "make install" pour mettre le résultant .un fichier dans /usr/lib/et les .h les fichiers dans /usr/include

Il semble être de trouver les fichiers de manière appropriée (depuis je n'ai plus de ces erreurs, que j'ai fait avant de l'installer dans le répertoire /usr répertoires).

Cependant, lorsque je crée une simple principal d'un appel à mp_init (qui est dans la bibliothèque), j'obtiens l'erreur suivante lorsque je tente de faire mon projet:

mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
gcc -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.c
mkdir -p dist/Debug/GNU-Linux-x86
gcc -o dist/Debug/GNU-Linux-x86/cproj1 build/Debug/GNU-Linux-x86/main.o
build/Debug/GNU-Linux-x86/main.o: In function 'main':
/home/[[myusername]]/NetBeansProjects/CProj1/main.c:18: undefined reference to `mp_init'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/cproj1] Error 1

Donc il semble que l'éditeur de liens ne pouvez pas trouver la fonction au sein de la bibliothèque, mais il EST là, donc je ne sais pas ce qui pourrait en être la cause.

Je reçois la même erreur si je tape la commande gcc directement et passez le makefile, j'ai aussi veillé à ce que la bibliothèque statique ai compilé avec gcc en tant que bien.

Modifiées afin d'Ajouter:

- Je obtenir ces mêmes erreurs si je ne le compiler directement et ajouter à la bibliothèque -l ou-l:

$ gcc -l /usr/lib/libtommath.a main.c 
/usr/bin/ld: cannot find -l/usr/lib/libtommath.a
collect2: ld returned 1 exit status

$ gcc -llibtommath.a main.c 
/usr/bin/ld: cannot find -llibtommath.a
collect2: ld returned 1 exit status

$ gcc -Llibtommath.a main.c 
/tmp/ccOxzclw.o: In function `main':
main.c:(.text+0x18): undefined reference to `mp_init'
collect2: ld returned 1 exit status

$ gcc -Llibtommath.a main.c 
/tmp/ccOxzclw.o: In function `main':
main.c:(.text+0x18): undefined reference to `mp_init'
collect2: ld returned 1 exit status

Je suis très rouillé sur ce genre de choses, donc je ne suis pas sûr que je suis en utilisant le bon de commande ici, dans l'-L sont des exemples de bibliothèques être trouvé? Si la bibliothèque n'est pas trouvé comment diable puis-je faire pour trouver la bibliothèque? C'est dans /usr/lib, j'ai essayé avec le .un fichier dans le répertoire courant, etc. Est-il une variable d'environnement que je dois mettre? Si oui, comment, etc.

J'ai essayé de complètement différent de la bibliothèque (BPF) et a eu exactement le même problème. Cela a obtenu d'être une sorte de Ubuntu problématique de l'environnement? Quelqu'un a une idée de comment résoudre ce problème?

InformationsquelleAutor KU1 | 2009-10-04