2016-08-09 28 views
0

main.cppWie undefined reference to fix auf `b2World :: b2World (b2Vec2 const &)‘

#include <iostream> 
#include <Box2D/Box2D.h> 

int main() { 
    int32 velocityIterations = 6; 
    int32 positionIterations = 2; 
    b2Vec2 gravity(0.0f, -10.0f); 
    b2World world(gravity); 

    std::cout << "Hello, world!" << std::endl; 
} 

Der Fehler erhalte ich:

undefined reference to `b2World :: b2World (b2Vec2 const &)‘

Wenn ich versuche, die Verknüpfung Box2D in CMakeLists.txt:

include_directories(C:/Users/blahblah/CPPLibs) 
target_link_libraries(HelloWorld Box2D) 

ich:

c:/mingw/bin /../ lib/gcc/x86_64-w64-mingw32/6.1.0 /../../../../ x86_64 -w64-mingw32/bin/ld.exe: kann -lBox2D nicht finden

Wie kann ich Box2D richtig in mein Projekt importieren?

+0

create b2World Konstruktor –

+0

@MichelJord Ich tat 'b2World Welt (Schwerkraft);', was ist los? –

Antwort

1

Sie können nicht kompilieren, da Ihr Linker Box2D-Quelldateien nicht finden kann. Sie müssen .cpp-Dateien manuell hinzufügen (was eine schlechte Lösung ist) oder eine statische Bibliothek mit Box2D-Quellcode erstellen (z. B. .../Box2D_v2.3.0/Box2D/Box2D). Generierte Datei (z. B. libBox2D.a) fügen Sie Ihrem Projekt hinzu und es sollte ohne Probleme kompiliert werden.

+0

Wie kann ich die .a-Datei erzeugen? –

+0

Wenn Sie bitte hinzufügen können, wie es Schritt für Schritt gemacht wird, bin ich neu in C++. Ich habe das versucht: http://jantzeno.github.io/2013/08/06/Box2D-command-line.html aber es hat nicht für mich funktioniert. –

+0

Ich bekomme Fehler beim 'cmake .' –