3

有谁知道 NVCC 设置的 _ITERATOR_DEBUG_LEVEL 是什么?

我在 VS2010 的 Cmake 项目中工作,尝试链接项目时出现链接错误:

2>warper_cuda.lib(cudakernels.cu.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in ColorTable.obj

我可以将 c++ 文件的 _ITERATOR_DEBUG_LEVEL 设置为 0,但是它不再与其他一些库链接。所以我需要一种方法来使 nvcc 编译为 2 级。

在发布模式下使用所有内容都有效,因此级别似乎设置正确。用于编译的命令行如下所示:

"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v4.0/bin/nvcc.exe" C:/path/to/cudakernels.cu -c -o "C:/path/to/cudakernels.cu.obj" -ccbin "c:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin" -m64 -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -Xcompiler ,\"/DWIN32\",\"/D_WINDOWS\",\"/W3\",\"/Zm1000\",\"/EHsc\",\"/GR\",\"/openmp\" -DNVCC -I -IC:/include/directory ...
4

1 回答 1

6

刚刚在这里找到了解决方案:http: //llpanorama.wordpress.com/2008/05/21/my-first-cuda-program/

我必须在 NVCC 命令行中添加“-D_DEBUG”以使其使用 2 的 _ITERATOR_DEBUG_LEVEL ...

于 2012-03-15T08:45:12.050 回答