Bullet Physics物理引擎库编译配置
编译准备
github下载Bullet库的源码:bulletphysics/bullet3(github.com)
安装CMake:Download | CMake。如果像我一样使用的是Visual Studio 2022,就需要下载最新版的CMake,否则后面会无法生成解决方案
开始编译
打开
cmake-gui
,找到下载的Bullet源码,找到bullet3-master/CMakeLists.txt
,把它拖到CMake界面里,设置下二进制文件的构建路径一定要勾选这个选项:
不然会导致之后跟已有项目链接时出错,因为大部分库都是用这个选项编译的,具体解释可以参考这篇文章:/MD 与 /MT、/MTD与/MDD的区别
其它选项保持默认就好了,点击[Configure]选择自己的VS版本。默认按照64位进行编译,这里要注意Bullet库也只能编译成64位的,不能选择其它平台,所以自己的项目也一定要可以在64位下进行编译
之后点击[Generate]生成解决方案,然后就可以在设置的构建目录下找到
BULLET_PHYSICS.sln
,打开它。编译ALL_BUILD
这个项目就可以全部编译。根据需要可以按照Debug
和Release
分别编译一次
使用库
在
构建路径 > lib
下找到对应的库文件。因为文档基本都是Bullet2的(命名以bt
开头),我这里也只选择了Bullet2的库文件,也就是LinearMath.lib
、BulletDynamics.lib
、BulletCollision.lib
。对应Debug版的会有相应的后缀。把他们复制到项目的库路径里,并设置C++ 链接器的输入(注意Debug和Release版要分别配置)回到Bullet的源码路径,把
src
文件夹里的BulletCollision/
、BulletDynamics/
、LinearMath/
、btBulletCollisionAll.cpp
、btBulletCollisionCommon.h
、btBulletDynamicsAll.cpp
、btBulletDynamicsCommon.h
、btLinearMathAll.cpp
都放到项目的包含路径里。因为这里为了方便看源码而没有去掉.cpp
文件,所以一定不能直接放到项目文件夹下,不然链接时会出现符号重复定义的错误再回到Bullet的源码路径,找到
examples > HelloWorld > HelloWorld.cpp
,尝试复制到项目里,选择x64编译运行