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

时间:2016-08-23 13:46:41

标签: c++ cuda cmake

我正在使用Visual Studio 2013编译包含带有cu文件的cpp的动态库,并且在链接期间出现了这样的错误:

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 ++下 - >主机到"多线程DLL(/ MD)"或者来自主持人"。

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

问题是,我正在尝试编译动态库吗?与此假设相矛盾的是,当我仅编译cpp文件时,编译成功。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:2)

我认为,一个与CRT DLL(/ MD)相关联,另一个与静态链接(/ MT)。