c++ - LNK2038 : mismatch detected for 'RuntimeLibrary' with cuda

标签 c++ cuda cmake

我正在使用 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/

相关文章:

python - 编译 OpenCV - Python.h - 找不到 Python.h

cmake ExternalProject缓存被覆盖

c++ - 取消引用超出范围的 vector 迭代器 - 发生了什么,为什么?

c++ - 在同一项目中混合使用 C++ 风格

c++ - 尝试 'Make' CUDA SDK,ld 找不到库,ldconfig 说可以

cuda - 有没有办法甚至可能在一段时间内获得 GPU 的整体利用率?

c++ - 使用 cmake 和 msvc 2010 构建 gdcm 2.4.1 无法获取所有 dll

c++ - std::map<string, class> 打印键的值

c++ - 如何设置默认g++?

c++ - 非连续容器(如 std::deque)的随机访问迭代器是如何实现的?