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文件,可以根據編譯版本自行改文件名:

構建安裝包如下:

 

參考文獻

Bullet 2.82 Physics SDK Manual(在下載的Bullet包中)

http://bulletphysics.org/mediawiki-1.5.8/index.php/Creating_a_project_from_scratch

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM