GCC - Linkerproblem



  • Ich habe folgende Bibliothek gebaut: http://www.hpfem.jku.at/netgen/

    Unter Windows mit dem VC++ läuft alles einwandfrei.
    Unter Linux mit dem GCC 4.3.2 habe ich nun folgendes Problem: ich bekomme immer undefined reference to ... als Fehlermeldung.

    Für die Lib werden erst mit 'configure' makefiles erstellt und dann mit 'make' und 'make install' das Programm sowie die lib erstellt. Mein Programm, was die Lib nutzen soll, ist ein Eclispe-Projekt. das ganze läuft unter Suse 11.1 x64

    Nun wäre meine Frage, was könnte alles die Ursache sein, dass die Referenzen nicht gefunden werden. Die lib ist im eclipse eingetragen und steht auch in der makefile.release und debug drinnen.
    Kann es an irgendwelchen unterschiedlichen Compiler-Schaltern liegen? Irgendwelche Ideen/vorschläge?

    MfG Pellaeon



  • ich bekomme immer undefined reference to ... als Fehlermeldung

    Beim Uebersetzen der Bibliothek oder bei deinem Projekt, das nur die Bibliothek benutzt? Wie lautet die vollstaendige Fehlermeldung?



  • Der Fehler kommt bei meinem eigenen Programm, welches Funktionen aus der Lib benutzt:

    home/mathe/lvhome50/users/guests/mschumi/SPCedit/SPCedit/SPCsource/Tet2HexImporter.cpp:272: undefined reference to nglib::Ng_GetNP(void**)' /home/mathe/lvhome50/users/guests/mschumi/SPCedit/SPCedit/SPCsource/Tet2HexImporter.cpp:273: undefined reference tonglib::Ng_GetNE(void**)'
    /home/mathe/lvhome50/users/guests/mschumi/SPCedit/SPCedit/SPCsource/Tet2HexImporter.cpp:281: undefined reference to nglib::Ng_GetPoint(void**, int, double*)' /home/mathe/lvhome50/users/guests/mschumi/SPCedit/SPCedit/SPCsource/Tet2HexImporter.cpp:289: undefined reference tonglib::Ng_GetVolumeElement(void**, int, int*)'
    debug/Tet2HexImporter.o: In function `CTet2HexImporter::loadFromNetGen(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, A3D::Mesh&)'

    Angebenen ist die Lib im Makefile. Also muss diese irgendwie inkompatibel sein vermute ich. Habe ich aber vorher nach Anleitung gebaut auf meinem System. Die Lib stammt also vom selben Compiler.



  • Hast du die entsprechenden Header inkludiert und die Libs in der Projekteinstellung angegeben?



  • Joar, ohne Headerdateien wären die Sachen ja undefiniert, dann wäre es kein Linkerfehler. und die lib ist angegeben und steht auch im generierten makefile drinnen. Daher vermute ich ja, dass irgendwelche wichtigen Compilerflags unterschiedlich sind und das ganze deshalb nicht passt. Ich kenn mich aber mit dem GCC nicht so aus. Daher weiß ich nicht, was da in Frage kommen könnte.

    MfG Pellaeon


Anmelden zum Antworten