Có thể biên dịch OpenCL bằng Mingw và Nvidia SDK không?Biên dịch OpenCL trên Mingw Nvidia SDK
Tôi biết rằng nó không được hỗ trợ chính thức nhưng điều đó không có ý nghĩa. Không phải là các thư viện được cung cấp như một thư viện liên kết tĩnh? Tôi có nghĩa là một khi biên dịch với bất kỳ trình biên dịch có thể được, và liên kết thành công, whats nên được vấn đề?
Tôi đã quản lý để biên dịch và liên kết thành công mã của mình với thư viện OpenCL được cung cấp với SDK của Nvidia, tuy nhiên tệp thực thi sẽ ném Phân đoạn lỗi tại số clGetPlatformIDs
, đây là cuộc gọi OpenCL đầu tiên trong mã của tôi.
Đây là lệnh biên soạn của tôi
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
Lưu ý rằng các thư viện này được lấy từ file sln của mã mẫu OpenCL.
Tôi đã thử các kết hợp khác nhau của các thư viện này và dường như không có gì hoạt động.
Cũng có cách để biên dịch bằng Mingw và liên kết bằng cách sử dụng cái gì khác? Tôi không chắc điều gì khác có thể xảy ra.
Tại sao bạn không sử dụng VC++ Express, để xây dựng mã máy chủ? Ngoài ra bạn đang sử dụng 32 bit hoặc 64bit libs? Có một sự pha trộn khó hiểu của CUDA \ v5.0 \ lib \ x64 và -luse32 -lcomdlg32 -ladvai32 ... -m64 là tất cả các libs cần thiết? Đơn giản hóa dòng lệnh của bạn. –
64-bit, mã C++ của tôi sử dụng các tính năng C++ 11 để VC++ không hoạt động. Tôi đã thử xóa và thêm libs, dead end. – omarzouk