#c #opengl #cuda
#c #opengl #cuda
Вопрос:
у меня есть огромный файл CU, который содержит мой проект, я пытаюсь разделить его на маленькие файлы CU, но я получаю много ошибок gl.h, я не знаю, что делать … это сводит меня с ума..
1> Compiling CUDA source file core.cu...
1>
1> C:UsersigalDesktopprj trying to devide filesgraph>"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.0binnvcc.exe" -gencode=arch=compute_10,code="sm_10,compute_10" --use-local-env --cl-version 2010 -ccbin "c:Program Files (x86)Microsoft Visual Studio 10.0VCbin" -I"C:Program FilesNVIDIA GPU Computing ToolkitCUDAv4.0include" -G0 --keep-dir "Debug" -maxrregcount=0 --machine 32 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "Debugcore.cu.obj" "C:UsersigalDesktopprj trying to devide filesgraphcore.cu"
1>c:Program Files (x86)Microsoft SDKsWindowsv7.0AincludeGL/gl.h(1152): error : this declaration has no storage class or type specifier
1>c:Program Files (x86)Microsoft SDKsWindowsv7.0AincludeGL/gl.h(1152): error : expected a ";"
1>c:Program Files (x86)Microsoft SDKsWindowsv7.0AincludeGL/gl.h(1153): error : this declaration has no storage class or type specifier
1>c:Program Files (x86)Microsoft SDKsWindowsv7.0AincludeGL/gl.h(1153): error : variable "WINGDIAPI" has already been defined
1>c:Program Files (x86)Microsoft SDKsWindowsv7.0AincludeGL/gl.h(1153): error : expected a ";"
и список можно продолжить..
Ответ №1:
Поскольку вы используете Windows, убедитесь, что вы включаете windows.h
перед включением gl.h
, или любой другой файл, который может косвенно включать gl.h
.
Как указано в MSDN, это необходимо для работы OpenGL.
Комментарии:
1. спасибо за ваш ответ… что ж, я решил сделать все наоборот, отделил код CPP от кода CU, а не так, как упоминалось ранее. после добавления внешней команды «c» перед каждой функцией CPP, которая вызывает ядро cuda, мне удалось заставить ее работать… что ж, моя следующая задача — импортировать ядра в классы CPP.. не совсем уверен, как это сделать с помощью внешней команды «c»