Box2D静态库项目安装问题

时间:2011-07-01 06:26:35

标签: c++ header project hyperlink static-libraries

嘿所以我只是采取了以下步骤:

  • 下载Box2d 2.1.2并使用cmake构建msVS ++射弹
  • 在调试和发布下构建Box2D.sln,但没有触及libs或dll
  • 制作了一个新的Win32项目,并将Box2D下载中包含的“Hello World”中的代码复制到我的新项目主源文件中
  • 在Cmake用于生成项目的相同源代码中添加了一个include目录
  • 将项目“Box2D”(静态库项目)添加到sollution中,以便我可以修改库的代码;由cMake生成
  • 在我的新项目共同属性
  • 下添加了“Box2D”作为参考
  • 查看“Box2D”的图书管理员属性并将“链接库依赖关系”设置为YES
  • 思考我在评论中作为评论的问题(也请回答!)

这是Hello World.cpp(请回答评论中的问题)

/* I've also added the "Box2D" project generated by cmake, which includes 
    all the same files that are in folder my include directory points to, so i could alter the code.
    Does this mean i should change <Box2D\Box2D.h> to just "Box2D.h" ?  */
#include <Box2D\Box2D.h>
#include "StdAfx.h"
#include <cstdio>

int main(int argc, char** argv)
{
    B2_NOT_USED(argc);
    B2_NOT_USED(argv);

    // Define the gravity vector.
    b2Vec2 gravity(0.0f, -10.0f);

    // Do we want to let bodies sleep?
    bool doSleep = true;

         // blah blah, rest of code doesn't matter
}

但是在尝试运行时,我会收到错误,例如

1>c:\libraries and headers\box2d_v2.1.2\box2d_v2.1.2\box2d\build\box2d helloworld\box2d helloworld\box2d helloworld.cpp(30): error C3861: 'B2_NOT_USED': identifier not found

这些都是关于未定义的标识符,它们在Box2D.h中包含的许多标题中定义。 为什么不看到它们?

1 个答案:

答案 0 :(得分:1)

发现问题:没有看到警告说Box2D.h被跳过了,因为它被放置在stafx.h之前的;所以我改变了包含的顺序。