使用NVIDIA在Windows中的CLion上运行OpenCL 我试图在C++中使用英伟达OpenCL库编译和链接一个C/C++ OpenCL应用程序在克利永上。

使用NVIDIA在Windows中的CLion上运行OpenCL 我试图在C++中使用英伟达OpenCL库编译和链接一个C/C++ OpenCL应用程序在克利永上。,windows,dll,linker,opencl,clion,Windows,Dll,Linker,Opencl,Clion,我的问题是CLion正在使用CMake和Cygwin GCC编译器在Windows中创建代码。因此,在运行时是否应该使用.lib、.a、.dll或.o文件存在一些混淆 有一个迹象表明,我可能能够从OpenCl.dll导出定义,并创建OpenCl.a以导入并可能针对OpenCl.dll运行。Cygwin拥有使用nm链接DLL的功能。它们表明我们可以这样做 echo EXPORTS > foo.def nm foo.dll | grep ' T _' | sed 's/.* T _//' &g

我的问题是CLion正在使用CMake和Cygwin GCC编译器在Windows中创建代码。因此,在运行时是否应该使用.lib、.a、.dll或.o文件存在一些混淆

有一个迹象表明,我可能能够从
OpenCl.dll
导出定义,并创建
OpenCl.a
以导入并可能针对
OpenCl.dll
运行。Cygwin拥有使用
nm
链接DLL的功能。它们表明我们可以这样做

echo EXPORTS > foo.def
nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def
dlltool --def foo.def --dllname foo.dll --output-lib foo.a
将创造工作。包含有关如何使用MinGW完成任务的说明,还包含使用dlltool的说明

但是,CygWin指南警告,英伟达CUDA SDK中的OpenCL.DLL运行的代码< > NoopOpenL.DLL>代码>导致<>代码> NM:OpenCL .dll:没有符号< /代码>,表明DLL已被剥离或发生了一些错误。p> 我正在使用CUDA 7.5 SDK,但怀疑所有问题都会类似


是否有人在CLion for Windows中或在Windows环境中从Cygwin成功构建并链接了该软件?

nVIDIA仅提供剥离版本。您需要以另一种方式获取defs,nm只使用调试数据,因此逻辑结果是它不起作用。@DarkZeros同意。是否知道如何获取稳定的def文件?我的想法是核心opencl函数defs很有可能是可转移的,但我不确定cygwin和windows之间转移的兼容性问题,可能的名称损坏(?),等等。虽然我没有cygwin的经验,在MinGW-w64中构建代码时,我使用了AMD应用程序SDK中的libOpenCL.a文件。希望您也能使用libOpenCL.a。只要我坚持使用他们支持的OpenCL版本(1.1在旧驱动程序上,1.2在新驱动程序上),我在NVIDIA GPU上使用它就没有问题。