嘿,所以我只是采取了以下步骤:
- 下载 Box2d 2.1.2 并使用 cmake 构建 msVS++ 射弹
- 在调试和发布时构建了 Box2D.sln,但没有触及库或 dll
- 创建一个新的 Win32 项目,并将 Box2D 下载中包含的“Hello World”代码复制到我的新项目主源文件中
- 在 Cmake 用于生成项目的相同源代码中添加了一个包含目录
- 将项目“Box2D”(静态库项目)添加到解决方案中,以便我可以修改库的代码;由 cMake 生成
- 在我的新项目通用属性下添加“Box2D”作为引用
- 查看“Box2D”的库管理器属性并将“链接库依赖项”设置为"is"
- 思考我作为评论放在上面的问题(也请回答!)
这是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 中包含的许多头文件中定义。 为什么它看不到它们?
最佳答案
发现问题:没看到warning说Box2D.h被跳过是因为它放在stafx.h之前;所以我调换了包含的顺序。
关于c++ - Box2D静态库项目安装问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6544361/