externe Library, undefined reference..



  • Hallo,
    ich habe ein kleines Problem (und ich hoffe mal ich bin hier richtig).
    Ich möchte in mein Programm die freie Bullet Physik Bibliothek einbinden.
    Dazu habe ich mir die entsprechende Archiv auf der Seite runtergeladen.

    Mein kleines Testprogramm mit dem ich erstmal testen wollte ob das ganze rennt:

    #include <LinearMath/btList.h>
    #include <OpenGL/GLDebugDrawer.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    	btGEN_List list;
    	GLDebugDrawer db;
    	return EXIT_SUCCESS;
    }
    

    Die beiden 'includierten' Dateien werden von der Bullet Bibliothek mitgeliefert. Den entsprechenden Pfad habe ich auch hinzugefügt (sonst würde er mir ja sagen das er die .h Datei nicht finden könnte).
    Wenn ich das ganze jetzt kompiliere erhalte ich die Meldung:

    ../src/bullettest1.cpp:16: undefined reference to `GLDebugDrawer::GLDebugDrawer()'
    bullettest1.o: In function `~GLDebugDrawer':
    ../bullet-2.53/Demos/OpenGL/GLDebugDrawer.h:9: undefined reference to `vtable for GLDebugDrawer'
    

    (btGEN_List funktioniert)

    Als nicht grade erfahrener C++ User würde ich jetzt sagen das in der GLDebugDrawer.h etwas nicht stimmt. Da ich das aber wohl eher nicht der Fall sein dürfte nehme ich an ich habe irgendetwas falsch gemacht.
    Wäre fein wenn mir jemand weiterhelfen könnte 🙂
    (Ich benutze KDevelop)

    mfg Xorm.



  • linkst du auch die passenden librarys dazu?
    damit meine ich die .lib und/oder .a files



  • hm nein hatte ich nicht.
    Ich hatte nur die Pfade zu den .h und .cpp Dateien angegeben. Jetzt habe ich die Ordner in denen sich die .a Dateien befinden mit -I/pfad angegeben und die .a Dateien mit -lname hinzugefügt.

    Jetzt hagelt es immerhin andere Fehlermeldungen mit denen ich mich Morgen mal auseinander setzten werde.

    Danke soweit 🙂



  • Hm so ganz schlau werde ich daraus jetzt noch nicht.
    Habe die Sachen wie in meinem vorherigen Post eingebunden.
    Jetzt erhalte sehr ähnliche Fehlermeldungen. Eine davon:

    ../OpenGL/libLibOpenGLSupport.a(GL_ShapeDrawer.o): In function `GL_ShapeDrawer::drawOpenGL(float*, btCollisionShape const*, btVector3 const&, int)':
    GL_ShapeDrawer.cpp:(.text+0x509): undefined reference to `btTriangleCallback::~btTriangleCallback()'
    

    Bei libLibOpenGLSupport.a handelt es sich um eine der Dateien die ich eingebunden habe.

    mfg Xorm



  • Du musst die LinearMath-lib natürlich auch dazu linken.



  • Ich bin eigentlich davon ausgegangen das ich das gemacht habe. *g

    Bei den CXXFlags habe ich KDevelop folgendes eingetragen:
    -lGL -lglut -lGLU -lLibLinearMath -lLibBulletCollision -lLibOpenGLSupport -lLibBulletDynamics

    In den LDFlags steht folgendes:
    -L/home/[..]/bullet/bullet-all/src/BulletCollision
    -L/home/[..]/bullet/bullet-all/Demos/OpenGL
    -L/home/[..]/bullet/bullet-all/src/LinearMath
    -L/home/[..]/bullet/bullet-all/src/BulletDynamics

    Die .a files befinden sich in den entsprechenden Ordnern.
    /home/[..]/bullet/bullet-all/src/LinearMath/libLibLinearMath.a
    /home/[..]/bullet/bullet-all/Demos/OpenGL/libLibOpenGLSupport.a
    /home/[..]/bullet/bullet-all/src/BulletCollision/libLibBulletCollision.a
    /home/[..]/bullet/bullet-all/src/BulletDynamics/libLibBulletDynamics.a

    Zu den Includes habe ich folgendes hinzugefügt:
    -I/home/[..]/bullet/bullet-all/Demos
    -I/home/[..]/bullet/bullet-all/src

    Die Fehlermeldungen kommen wenn ich probiere eines der mitgelieferten Demo programme zu kompilieren.

    mfg Xorm



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten