2012-11-18 15 views
14

我在Windows 7和Visual Studio 2012上使用了Bullet Physics。我已經編譯了這些庫,並且演示工作正常,但是當我嘗試創建自己的解決方案時,我我正在鏈接錯誤。我已經最小化的代碼量子彈物理,Visual Studio中的鏈接錯誤

#include "btBulletDynamicsCommon.h" 
int main(int argc, char*argv[]) 
{ 
    btBoxShape* box = new btBoxShape(btVector3(1, 1, 1)); 
    return 0; 
} 

,當我連接,使用Visual Studio給了我下面的錯誤:當我建立在調試或發佈模式

1>------ Build started: Project: HelloBulletApp, Configuration: Release Win32 ------ 
1> main.cpp 
1> main.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 
1>BulletCollision.lib(btCollisionShape.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj 
1>BulletCollision.lib(btConvexShape.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj 
1>BulletCollision.lib(btPolyhedralConvexShape.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj 
1>BulletCollision.lib(btConvexPolyhedron.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj 
1>LinearMath.lib(btConvexHullComputer.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj 
1>LinearMath.lib(btGeometryUtil.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj 
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>c:\path\to\HelloBulletApp\HelloBulletApp\Release\HelloBulletApp.exe : fatal error LNK1319: 6 mismatches detected 

同樣的錯誤出現。 我已經試過:
- 重建子彈2.81,
- 重新下載2.81,
- 創建一個空白的項目並添加庫,
- 創建一個空白的項目,並添加項目作爲http://bulletphysics.org/mediawiki-1.5.8/index.php/Creating_a_project_from_scratch, 但建議徒勞無功。

有什麼我可以做的嗎?

回答

20

看起來BulletCollision.lib被編譯爲與C運行時庫(/ MD)的DLL版本鏈接,但是您正在編譯爲與靜態鏈接的運行時庫(/ MT)鏈接。將您的編譯器選項更改爲與DLL運行時庫鏈接。

+3

謝謝。愚蠢的小東西,讓我卡住每一次.. – maccard

+6

配置屬性 - > C/C++ - >代碼生成 - >運行時庫 –