如何正确编译box2d helloworld

时间:2014-08-14 15:18:59

标签: c++ ubuntu box2d

我回到c ++(几年后我还没有使用它)来学习自己的box2d API。

我确切地知道我在Linux系统(Ubuntu)上,我已经从this guide之后的源代码安装了box2d(2.3.0)。

所以,我尝试编译包含helloworld代码的box2d,但是我在b2world的实例上遇到了错误。

  

对b2world的未定义引用

There is the complete file

我尝试了一个非常基本的测试,但结果是一样的:

#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进行编译,但没有人成功。

非常感谢任何帮助或建议。

1 个答案:

答案 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