我正在使用Visual Studio 2015构建C ++ DLL,并且我希望在没有Visual Studio开发环境的情况下将调试版本部署到另一台(内部而非客户)计算机,这意味着我&#39 ; ll必须静态链接到MSVCRT(链接器选项' / MTd')。我的项目依赖于静态库foo.lib(调试版本),它似乎是用' / MDd'构建的,并且在链接时,它预计会抛出:
" foo.lib(bar.obj):错误LNK2038:检测到' RuntimeLibrary':value' MDd_DynamicDebug'不匹配价值' MTd_StaticDebug'在dllmain.obj"
我有什么方法可以覆盖这个并强制使用' / MTd'?
答案 0 :(得分:0)
如果您有外部lib源,那么您可以使用/MTd
编译器开关重建它。如果没有可用的源,则无法强制使用其他运行时使用模型。如果您尝试分发非发布版本以满足远程调试客户端计算机上的某些问题,您可以部署发布版本,但具有禁用优化,启用运行时检查,调试信息等。只要您没有进入标准库元素,调试应该工作得很好。