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&)'的引用
当我尝试在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正确导入到我的项目中?
最佳答案
您无法编译,因为您的链接器找不到Box2D源文件。您必须手动添加.cpp文件(这是一个较差的解决方案),或者使用Box2D源代码创建静态库(例如... / Box2D_v2.3.0 / Box2D / Box2D)。生成的文件(例如libBox2D.a)添加到您的项目中,并且应该对其进行编译而不会出现任何问题。
关于c++ - 如何修复对`b2World::b2World(b2Vec2 const&)'的 undefined reference ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38852199/