如何添加在CMake的文件头文件路径(How to add header file path in

2019-09-24 00:54发布

我是新来的OpenCL。 我已经写在OpenCL的矢量附加码与互联网的帮助。 我已经包括一个头文件即CL/cl.h使用#include

我使用NVIDIA图形卡和OpenCL实现是NVIDIA_GPU_Computing_SDK。 我的OpenCL头文件驻留在这条道路/opt/NVIDIA_GPU_Computing_SDK/OpenCL/common/inc 。 我可以用我的编译代码时加上这条道路贯穿Linux终端OpenCL程序。 但现在我想写CMake的文件中查找该代码。 CMake的文件为C程序工作正常,但不是因为这个路径问题OpenCL程序。 在终端,我用来输入$cmake . 这之后$make ,它将搜索是由CMake的创建一个Makefile,现在我的错误是输入命令后make

fatal error: CL/cl.h: No such file or directory!

现在告诉我,我怎么能包括这个头文件到CMake的文件?

Answer 1:

你需要把这些线路到的CMakeLists.txt:

include_directories(/opt/NVIDIA_GPU_Computing_SDK/OpenCL/common/inc)
link_directories(/opt/NVIDIA_GPU_Computing_SDK/OpenCL/common/<lib or something similar>)

add_executable(yourexe src1.c ...)
target_link_libraries(yourexe OpenCL)

但要注意,它是不可移植的,因为OpenCL的SDK可以在别处另一台机器上。 要做到这一点,正确的方法是使用FindOpenCL.cmake模块。



Answer 2:

也许你可以使用CMake的“发现”的剧本,如:

  • http://gitorious.org/findopencl/findopencl/blobs/master/FindOpenCL.cmake
  • http://code.google.com/p/opencl-book-sa​​mples/source/browse/trunk/cmake/FindOpenCL.cmake?r=14

从OpenCL的编程指南书CMake的文件例如: http://code.google.com/p/opencl-book-sa​​mples/source/browse/trunk/CMakeLists.txt?r=14



Answer 3:

我一直在寻找FindOpenCL.cmake宏这将在Windows,OSX和Linux很好地工作......我找不到任何它做每一个平台上很好地工作,所以我写了新的,我在几个项目中使用(webcl-验证和OpenCL-测试套件)。

https://github.com/elhigu/cmake-findopencl

尤其是Windows的支持在这一个改进。

在Windows中,它会检查是否应使用64位或32位lib和它也试图从根据英伟达,英特尔和AMD的OpenCL的SDK设置环境变量找到库。

它还试图找到的.lib Cygwin中,其中并没有与我尝试过其他脚本。



文章来源: How to add header file path in CMake file
标签: cmake opencl