有谁知道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 ...
解决方法:
刚刚找到解决方案:
http://llpanorama.wordpress.com/2008/05/21/my-first-cuda-program/
我必须将“-D_DEBUG”添加到NVCC命令行,以使其使用_ITERATOR_DEBUG_LEVEL为2 …