Физика пули, связанная ошибка в Visual Studio - программирование
Подтвердить что ты не робот

Физика пули, связанная ошибка в Visual Studio

Я использую Bullet Physics, в Windows 7 и Visual Studio 2012. Я скомпилировал библиотеки, и демонстрации работают нормально, но когда я пытаюсь создать собственное решение, у меня возникают ошибки связывания. Я минимизировал количество кода для

#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

Те же ошибки появляются при создании Debug или Release Mode. Я пробовал:
- восстановление пули 2.81,
- redownloading 2.81,
- создание пустого проекта и добавление библиотек,
- создание пустого проекта и добавление проектов, предложенных в http://bulletphysics.org/mediawiki-1.5.8/index.php/Creating_a_project_from_scratch, но безрезультатно.

Есть ли что-нибудь, что я могу сделать?

4b9b3361

Ответ 1

Похоже, BulletCollision.lib был скомпилирован для связи с DLL-версией библиотеки времени выполнения (/MD), но вы компилируете ссылку на статически связанную библиотеку времени выполнения (/MT). Измените параметры своего компилятора для связи с библиотекой времени выполнения DLL.