C++ LNK2038:检测到与x27不匹配;RuntimeLibrary';和库达

C++ LNK2038:检测到与x27不匹配;RuntimeLibrary';和库达,c++,cuda,cmake,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) : erro

我正在使用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_添加_库)生成项目

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


谢谢你的建议

> P>我认为,一个链接与CRT DLL(MD)相关联,另一个与静态(/MT)连接。谢谢,但是我没有链接任何其他的库。但是你是VS C++运行库,这就是出现了设置设置不匹配的地方,我发现了问题。cmake文件中的CUDA_PROPAGATE_HOST_标志设置为OFF。。。。谢谢大家,很抱歉。在我的例子中,我不得不在cmake中使用MDd/MD标志而不是MT/MTd标志,编译并再次生成CUDA_PROPAGATE_HOST_flags=1。在Visual Studio中更改为多线程DLL(/MD)或多线程调试DLL(/MDd)没有传播主机标志。谢谢,但我只将一个项目编译到动态库(设置为/MD),并且我没有链接任何其他库。请仔细查看您的项目文件。