LNK2038:检测到与 cuda 'RuntimeLibrary'不匹配

LNK2038: mismatch detected for 'RuntimeLibrary' with cuda

本文关键字:RuntimeLibrary 不匹配 cuda 检测 LNK2038      更新时间:2023-10-16

我正在用Visual Studio 2013编译一个包含cpp和cu文件的动态库,在链接期间我得到了这样的错误:

proj_generated_cufile.cu.obj : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in file.obj
libcpmt.lib(ios.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in file.obj

我没有使用任何额外的库,我已经尝试将项目首选项中的运行时库-> C/c++ ->代码生成设置为"多线程DLL (/MD)",并在CUDA下的C/c++ -> Host设置为"多线程DLL (/MD)"或"从主机继承"。

我正在用cmake (cuda_add_library)生成项目。

可能是,问题是,我正在尝试编译一个动态库?与这个假设相矛盾的是,当我只编译cpp文件时,编译成功了。

谢谢你的建议!

我想,一个链接到CRT DLL (/MD),另一个是静态链接(/MT)。