_Cuda(NVCC)编译器的ITERATOR_DEBUG_LEVEL

_ITERATOR_DEBUG_LEVEL of Cuda (NVCC) compiler?

本文关键字:ITERATOR DEBUG LEVEL Cuda NVCC 编译器      更新时间:2023-10-16

有人知道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/

我不得不在NVCC命令行中添加"-D_DDEBUG",使其使用2…的_ITERATOR_DEBUG_LEVEL