Можно ли скомпилировать OpenCL с помощью Mingw и Nvidia SDK?Скомпилировать OpenCL на Mingw Nvidia SDK
Я знаю, что его официально не поддерживали, но это просто не имеет смысла. Разве библиотеки не предоставляются в виде статически связанных библиотек? Я имею в виду, когда-то скомпилированный с любым компилятором, который может быть и успешно связан, что должно быть проблемой?
Мне удалось скомпилировать и успешно связать мой код с библиотеками OpenCL, поставляемыми с SDK Nvidia, однако исполняемый файл выдает ошибку сегментации в clGetPlatformIDs
, который является первым вызовом OpenCL в моем коде.
Вот моя команда компиляции
x86_64-w64-mingw32-g++ -std=c++11 File.cpp \
-L"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\lib\x64" \
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" \
-gcoff -lOpenCL -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 \
-lshell32 -lole32 -loleaut32 \
-luuid -lodbc32 -lodbccp32 -luser32 -lgdi32 -lmingwex -m64 \
-DWIN32 -D_DEBUG -D_CONSOLE
Обратите внимание, что эти библиотеки были взяты из .sln файла кода образца OpenCL.
Я пробовал различные комбинации этих библиотек, и ничего не работает.
Также есть способ скомпилировать, используя Mingw и ссылку, используя что-то еще? Я не знаю, что еще может быть.
Почему вы не используете VC++ Express для создания кода хоста? Также вы используете 32-битные или 64-битные библиотеки? Существует путаное сочетание CUDA \ v5.0 \ lib \ x64 и -luse32 -lcomdlg32 -ladvai32 ... -m64 - все эти библиотеки нужны? Упростите свою командную строку. –
64-битный, мой код на C++ использует возможности C++ 11, поэтому VC++ не идет. Я попытался удалить и добавить libs, тупик. – omarzouk