Ahm*_*san 47 c++ matlab cuda visual-c++
我正在整合Matlab,C并Cuda在一个项目中.我使用Matlab mix将c语言编写的matlab mx函数与cuda运行时库连接起来,出现了关于静态发布中的冲突和c文件与库之间的动态发布的链接错误.谁能解决这个问题?
error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in file.obj.
Run Code Online (Sandbox Code Playgroud)
Rah*_*hav 41
当您将项目静态链接到库(通常是扩展名为.lib的文件)但Visual Studio项目中的链接器设置被设置为动态链接(意味着链接将在运行时发生,通常使用.)时,可能会发生此错误. DLL文件).
要定义您需要项目使用静态链接启动Visual Studio.在Solution Explorer窗格中,右键单击项目名称,然后选择Properties.展开属性,如下图所示:C/C++ - >代码生成 - >运行时库,Multi-threaded (/MT)从下拉菜单中选择选项.

小智 6
用于分享目的。
我正在使用 2017 VS 版本,该版本成功打开并运行旧的 2008 解决方案。现在,如果出于某种原因,即使您将所有库和主项目更改为具有相同的运行时库参数(在属性下,请参阅上面的海报)但您仍然收到相同的错误消息,请尝试打开每个单独的 .vcxproj 文件. 在“RuntimeLibrary”下搜索并使它们在所有 vcxproj 文件中的值相同。出于某种原因,这些 vcxproj 文件永远不会更新为我在属性设置中声明的相同值,我必须在 vcxproj 中手动更改它们。
或者,如果您愿意,也可以打开 vcproj 文件并将它们的“RuntimeLibrary”更改为相同的。这里的值是数字。
以下是修复的正确步骤
Error 69 error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease'
Run Code Online (Sandbox Code Playgroud)
这意味着运行时库是静态的,又名库(MT_StaticRelease ),这与您项目值动态库又名dll(MD_DynamicRelease)不同
将配置类型从动态库 (dll) 更改为 静态库(lib)
如果您遇到相反的情况并且上述步骤无法解决问题,请使用此选项