如何修复对`b2World :: b2World(b2Vec2 const&)'

时间:2016-08-09 13:29:34

标签: c++ box2d clion

的main.cpp

#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 const&amp;)'

当我尝试在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正确导入我的项目?

1 个答案:

答案 0 :(得分:1)

您无法编译,因为您的链接器无法找到Box2D源文件。您必须手动添加.cpp文件(这是一个糟糕的解决方案)或使用Box2D源代码创建一个静态库(例如... / Box2D_v2.3.0 / Box2D / Box2D)。生成的文件(例如libBox2D.a)添加到您的项目中,应该编译它没有任何问题。