【问题标题】:Bullet Physics, Linking Error in Visual Studio子弹物理,Visual Studio 中的链接错误
【发布时间】:2012-11-06 20:16:09
【问题描述】:

我在 Windows 7 和 Visual Studio 2012 上使用 Bullet Physics。我已经编译了库,并且演示工作正常,但是当我尝试创建自己的解决方案时,出现链接错误。我已将代码量降到最低

#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 的建议添加项目, 但无济于事。

有什么我可以做的吗?

【问题讨论】:

    标签: c++ visual-studio linker visual-studio-2012


    【解决方案1】:

    看起来 BulletCollision.lib 已编译为与 C 运行时库 (/MD) 的 DLL 版本链接,但您正在编译为与静态链接的运行时库 (/MT) 链接。更改编译器选项以链接 DLL 运行时库。

    【讨论】:

    • 配置属性 -> C/C++ -> 代码生成 -> 运行时库
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    相关资源
    最近更新 更多