windows下Bullet 2.82编译安装(Bullet Physics开发环境配置)

平台:Win7,VS2010

1. Bullet库的组织

下图是Bullet_User_Manual中的截图:

从中可见,Bullet的LinearMath(线性数学模块),其上是BulletCollision(碰撞检测模块),然后BulletDynamics(刚体模拟模块)和BulletSoftBody(可变形体模拟模块)建立在BulletCollision之上,另外还有可选的导入导出插件和多线程模块。LinearMath、BulletCollision、BulletDynamics、BulletSoftBody是核心模块,其他则是可选的(当你需要插件或使用多线程时使用)。我们这里只编译核心模块,其实LinearMath、BulletCollision、BulletDynamics、BulletSoftBody对应4个.lib文件(库文件)。

鉴于Bullet的模块化组织,用户可以分层次的使用Bullet:

  1. Collision detection,这时只需包含LinearMath、BulletCollision库;
  2. Rigid body dynamics,需包含LinearMath、BulletCollision、BulletDynamics库;
  3. Soft body dynamics,包含全部4个LinearMath、BulletCollision、BulletDynamics、BulletSoftBody库。

对于我们而言,可能用到可变形体,所以要编译全部4个模块。

2. Bullet安装指导

这是高层指导:

  1. 下载bullet-2.82-r2704.zip,解压(r后面的数字可能不同);
  2. 运行“../build/vs2010.bat”,生成VS2010工程;
  3. 用VS2010打开“../vs2010/0BulletSolution.sln”;
  4. LinearMathBulletCollisionBulletDynamicsBulletSoftBody,分别在DebugRelease配置下编译(更多版本及解释见这里);
  5. 将“../lib”下的8个.lib文件,以及“../src”下所有.h文件,都拷贝出来即构成安装包。

后面第4节会step by step讲解这个过程,并配有截图。下一节将如何配置Bullet工程。

3. Bullet工程配置(使用Bullet库)

要使用Bullet,需要:

  1. 添加包含目录,将上一节拷贝的.h文件所在目录添加到工程的包含目录(在所有配置下);
  2. 添加库目录,将上一节拷贝的.lib文件所在目录添加到工程库目录(在所有配置下);
  3. 引用库,添加对.lib文件的引用(根据使用层次添加所需.lib文件,Debug和Release分别设置);
  4. 包含头文件,在代码中包含“btBulletDynamicsCommon.h”。

注:

添加包含目录的两种方法:

  1. “项目属性 >> 配置属性 >> VC++目录 >> 包含目录”
  2. “项目属性 >> 配置属性 >> C/C++ >> 常规 >> 附加包含目录”。

添加库目录的两种方法:

  1. “项目属性 >> 配置属性 >> VC++目录 >> 库目录”
  2. “项目属性 >> 配置属性 >> 链接器 >> 常规 >> 附加库目录”。

引用库的两种方法:

  1. 代码#pragma comment (lib, "xxx.lib")(用#ifdef _DLL和#ifdef _DEBUG);
  2. “项目属性 >> 配置属性 >> 链接器 >> 输入 >> 附加依赖项”。

.lib文件版本问题参见我的另一篇文章:配置自己的OpenGL库,glew、freeglut库编译,库冲突解决

4. Step by step

咱们从生成的.sln文件开始吧:

打开0BulletSolution.sln:

分别在Debug和Release配置下生成上面截图中的4个项目。更多版本见:配置自己的OpenGL库,glew、freeglut库编译,库冲突解决。注意,Bullet工程里的Debug和Release都是使用静态CRT(我们一般用的是DLL CRT),所以,有必要多编译2个版本。编译后得到.lib文件,可以根据编译版本自行改文件名:

构建安装包如下:

原文地址:https://www.cnblogs.com/zhaolizhe/p/6938000.html