我正在使用 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++ -> 宿主到“多线程 DLL (/MD)”或“从宿主继承”。
我正在使用 cmake(使用 cuda_add_library)生成项目。
问题是我正在尝试编译动态库吗?与这个假设相矛盾的是,当我只编译 cpp 文件时编译成功。
感谢您的任何建议!
最佳答案
我认为,一个链接到 CRT DLL (/MD),另一个链接到静态链接 (/MT)。
关于c++ - LNK2038 : mismatch detected for 'RuntimeLibrary' with cuda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103001/