我回到c ++(几年后我还没有使用它)来学习自己的box2d API。
我确切地知道我在Linux系统(Ubuntu)上,我已经从this guide之后的源代码安装了box2d(2.3.0)。
所以,我尝试编译包含helloworld代码的box2d,但是我在b2world的实例上遇到了错误。
对b2world的未定义引用
我尝试了一个非常基本的测试,但结果是一样的:
#include <iostream>
#include <Box2D/Box2D.h>
using namespace std;
int main()
{
b2Vec2 gravity(0.0f, -10.0f);
b2World world(gravity);
cout << "Hello world!" << endl;
return 0;
}
我没有错误,包括box2d.h,并且没有使用b2Vec2的错误,所以我认为box2d已正确安装在我的电脑上。
我已经确认b2World是在box2d.h中指定的(它是原始的)。
我尝试使用g ++命令和IDE Qt Creator进行编译,但没有人成功。
非常感谢任何帮助或建议。
答案 0 :(得分:0)
问题是我还没有指定box2D库的路径。
所以,按照以下步骤,我成功编译并执行我的小hello world程序:
1)将库复制并粘贴到我的项目文件夹中(我把它放到lib目录中)。 2)将lib目录的路径添加到$ LD_LIBRARY_PATH:
export LD_LIBRARY_PATH =。/ lib:$ LD_LIBRARY_PATH
3)用g ++编译并指定使用box2D库:
g ++ main.cpp -o test -l Box2D