【发布时间】:2013-12-04 03:48:36
【问题描述】:
当项目中不包含cuda_test.cu文件时,代码运行正常。
当包含这样的文件时,我收到以下错误消息
mfcs100u.lib(dllmodul.obj) : error LNK2005: DllMain already defined in MSVCRT.lib(dllmain.obj)
cuda_test.cu 有以下头文件、一个全局函数和一个包装器。
#include <cuda.h>
#include <cuda_runtime.h>
#include <device_launch_parameters.h>
所以我不确定是什么导致了这个问题。
经过一番研究,这个问题似乎相当普遍,并且 fixes。但这开始给代码的不同部分带来麻烦。 (“StdAfx.h”包含在所有 .cpp 文件中,如果此信息相关)。
这是一个用 C++ 编写的大型项目,我正在尝试并行化其中的某些部分。
我们将不胜感激一些帮助。如果需要,我可以提供更多详细信息。
【问题讨论】:
-
看看这篇文章:Compiling CUDA mex files with Visual Studio。特别是后文部分。它描述了 error LNK2005: DllMain already defined in MSVCRT.lib 以及解决它的方法。
-
谢谢。这有帮助。但完全忽略
msvcrt.lib也会出错。起作用的是忽略mfcs100u和msvcrt这两个库,并将它们作为附加依赖项再次添加。 (如果我记得,更改顺序会有所帮助)
标签: c++ visual-studio-2010 cuda