2016-08-09 72 views
0

的main.cpp如何解決未定義的參考`b2World :: b2World(b2Vec2常量&)」

#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; 
} 

的錯誤,我得到:

未定義的參考`b2World :: b2World(b2Vec2常量&)」

當我嘗試的CMakeLists.txt鏈接的Box2D:

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

我得到:

C:/ MinGW的/ bin中/../ lib中/ GCC/x86_64的-W64-的mingw32/6.1.0 /../../../../ x86_64的-w64-mingw32/bin/ld.exe:找不到-lBox2D

如何正確導入Box2D到我的項目?

+0

創建b2World構造函數 –

+0

@MichelJord我做了'b2World world(gravity);',怎麼了? –

回答

1

您無法編譯,因爲您的鏈接程序找不到Box2D源文件。您必須手動添加.cpp文件(這是一個糟糕的解決方案),或者創建一個帶有Box2D源代碼的靜態庫(例如.../Box2D_v2.3.0/Box2D/Box2D)。生成的文件(例如libBox2D.a)添加到您的項目中,並且應該編譯時沒有任何問題。

+0

我如何生成.a文件? –

+0

如果你可以請添加如何使它一步一步,我是新的C++。我試過這個:http://jantzeno.github.io/2013/08/06/Box2D-command-line.html但它沒有爲我工作。 –

+0

我在做'cmake的時候出錯。' –