Ist es möglich, OpenCL mit Mingw und Nvidia SDK zu kompilieren?Kompilieren OpenCL auf Mingw Nvidia SDK
Ich bin mir bewusst, dass es nicht offiziell unterstützt, aber das macht einfach keinen Sinn. Werden die Bibliotheken nicht als statisch verknüpfte Bibliotheken bereitgestellt? Ich meine, einmal kompiliert mit was auch immer Compiler, und möglicherweise erfolgreich verknüpft, was sollte das Problem sein?
Ich habe es geschafft, meinen Code mit OpenCL-Bibliotheken zu kompilieren und erfolgreich zu verlinken, die mit Nvidias SDK zur Verfügung gestellt werden, jedoch löst die ausführbare Datei Segmentation Fault unter clGetPlatformIDs
aus, was der erste OpenCL-Aufruf in meinem Code ist.
Hier ist meine Sammlung Befehl
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
Beachten Sie, dass diese Bibliotheken aus der SLN-Datei der Probe OpenCL-Code entnommen wurden.
Ich versuchte verschiedene Kombinationen dieser Bibliotheken und nichts scheint zu funktionieren.
Gibt es auch eine Möglichkeit, mit Mingw zu kompilieren und mit etwas anderem zu verknüpfen? Ich bin mir nicht sicher, was das andere sein könnte.
Warum verwenden Sie nicht VC++ Express, um den Host-Code zu erstellen? Verwenden Sie auch 32-Bit- oder 64-Bit-Bibliotheken? Es gibt eine verwirrende Mischung aus CUDA \ v5.0 \ lib \ x64 und -luse32 -lcomdlg32 -ladvai32 ... -m64 Sind all diese Bibliotheken notwendig? Vereinfachen Sie Ihre Befehlszeile. –
64-Bit, mein C++ - Code verwendet C++ 11-Funktionen, daher ist VC++ nicht verfügbar. Ich habe versucht, libs zu entfernen und hinzuzufügen, Sackgasse. – omarzouk