其他分享
首页 > 其他分享> > c – Cuda(NVCC)编译器的_ITERATOR_DEBUG_LEVEL?

c – Cuda(NVCC)编译器的_ITERATOR_DEBUG_LEVEL?

作者:互联网

有谁知道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 …

标签:c,cuda,linker,visual-studio-2010,nvcc
来源: https://codeday.me/bug/20190826/1730289.html