_ITERATOR_DEBUG_LEVEL компилятора Cuda (NVCC)?

Кто-нибудь знает, какой _ITERATOR_DEBUG_LEVEL устанавливает NVCC?

Я работаю над проектом Cmake в VS2010 и получаю сообщение об ошибке при попытке связать проект:

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

Я могу установить _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 ...

person Jan Rüegg    schedule 14.03.2012    source источник
comment
Я думаю, что _ITERATOR_DEBUG_LEVEL — это внутренняя настройка визуальной студии. Вы уверены, что у вас нет файлов объектов хоста или библиотек, созданных для отладки?   -  person talonmies    schedule 14.03.2012
comment
Да, это визуальная студия. См. stackoverflow.com /вопросы/5727815/   -  person jli    schedule 15.03.2012


Ответы (1)


Только что нашел решение здесь: http://llpanorama.wordpress.com/2008/05/21/my-first-cuda-program/

Мне пришлось добавить "-D_DEBUG" в командную строку NVCC, чтобы использовать _ITERATOR_DEBUG_LEVEL из 2...

person Jan Rüegg    schedule 15.03.2012