使用Mingw和Nvidia SDK编译OpenCL是否可能?在Mingw Nvidia SDK上编译OpenCL
我知道它没有正式支持,但没有任何意义。不是作为静态链接库提供的库吗?我的意思是一旦用任何可能的编译器进行编译,并成功链接,什么应该是问题?
我设法编译并成功地将我的代码链接到随Nvidia SDK提供的OpenCL库,但是可执行文件在clGetPlatformIDs
处引发Segmentation Fault,这是我的代码中的第一个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
注意,这些图书馆从样品中的OpenCL代码的.sln文件拍摄。
我试过这些库的各种组合,似乎没有任何工作。
还有一种方法可以使用Mingw编译并使用别的链接进行链接?我不确定别的可能是什么。
为什么不使用VC++ Express来构建主机代码?你也使用32位或64位库吗?有混淆的CUDA \ v5.0 \ lib \ x64和-luse32 -lcomdlg32 -ladvai32 ... -m64这些库都是必需的吗?简化您的命令行。 – 2013-03-03 17:51:12
64位,我的C++代码使用C++ 11功能,所以VC++是不行的。我尝试删除和添加库,死胡同。 – omarzouk 2013-03-03 18:17:07