undefined reference bei NURBS++ library

Antworten
Nachricht
Autor
Thodin

undefined reference bei NURBS++ library

#1 Beitrag von Thodin » 20. Mai 2011 19:11

Hi,
ich versuche gerade die bibliothek NURBS++ in ein programm zu implementieren, leider bekomme ich trotz korrektem programmcode (habe das beispiel von der originalhomepage kompiliert). Nach dem kompilieren bekomme ich nur folgende Fehlermeldungen:

Code: Alles auswählen

**** Build of configuration Debug for project tesst ****

make all 
Building target: tesst
Invoking: GCC C++ Linker
g++  -o"tesst"  ./src/tesst.o   
./src/tesst.o: In function `Vector':
/usr/include/nurbs++/vector.h&#58;74&#58; undefined reference to `PLib&#58;&#58;BasicArray<PLib&#58;&#58;HPoint_nD<float, 3> >&#58;&#58;BasicArray&#40;int&#41;'
./src/tesst.o&#58; In function `~Vector'&#58;
/usr/include/nurbs++/vector.h&#58;80&#58; undefined reference to `PLib&#58;&#58;BasicArray<PLib&#58;&#58;HPoint_nD<float, 3> >&#58;&#58;~BasicArray&#40;&#41;'
/usr/include/nurbs++/vector.h&#58;80&#58; undefined reference to `PLib&#58;&#58;BasicArray<PLib&#58;&#58;HPoint_nD<float, 3> >&#58;&#58;~BasicArray&#40;&#41;'
./src/tesst.o&#58; In function `Vector'&#58;
/usr/include/nurbs++/vector.h&#58;74&#58; undefined reference to `PLib&#58;&#58;BasicArray<float>&#58;&#58;BasicArray&#40;int&#41;'
./src/tesst.o&#58; In function `~Vector'&#58;
/usr/include/nurbs++/vector.h&#58;80&#58; undefined reference to `PLib&#58;&#58;BasicArray<float>&#58;&#58;~BasicArray&#40;&#41;'
/usr/include/nurbs++/vector.h&#58;80&#58; undefined reference to `PLib&#58;&#58;BasicArray<float>&#58;&#58;~BasicArray&#40;&#41;'
./src/tesst.o&#58;&#40;.rodata._ZTVN4PLib6VectorIfEE&#91;vtable for PLib&#58;&#58;Vector<float>&#93;+0x10&#41;&#58; undefined reference to `PLib&#58;&#58;BasicArray<float>&#58;&#58;reset&#40;float&#41;'
./src/tesst.o&#58;&#40;.rodata._ZTVN4PLib6VectorINS_9HPoint_nDIfLi3EEEEE&#91;vtable for PLib&#58;&#58;Vector<PLib&#58;&#58;HPoint_nD<float, 3> >&#93;+0x10&#41;&#58; undefined reference to `PLib&#58;&#58;BasicArray<PLib&#58;&#58;HPoint_nD<float, 3> >&#58;&#58;reset&#40;PLib&#58;&#58;HPoint_nD<float, 3>&#41;'
collect2&#58; ld returned 1 exit status
make&#58; *** &#91;tesst&#93; Fehler 1
Hat jemand eine Idee, woran das liegen kann?

Danke schonmal im Voraus!

Benutzeravatar
Janka
Beiträge: 3572
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 20. Mai 2011 20:14

Es reicht zur Einbindung einer Library nicht, im Quelltest die entsprechenden Includes zu setzen. Man muss auch beim Linken das Library-Binary dazutun. Wenn du dynamisch linken willst, und die Library libxyz.so heißt, musst du beim Linker-Aufruf den Parameter -lxyz hinzufügen. Liegt die Library nicht im Library-Suchpfad, musst du außerdem den Parameter -LVerzeichnis hinzufügen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Thodin

#3 Beitrag von Thodin » 21. Mai 2011 14:53

Wow, vielen Dank!
Darauf wär ich als Programmier Anfänger alleine nie gekommen, jetzt funktioniert alles ;)

Gruß, Thodin

Antworten