Разделение файла Cuda CU на множество других файлов и проблема с компиляцией OPENGL

#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»