如何在CMake文件中添加头文件路径

Fak*_*een 2 cmake opencl

我是OpenCL的新手.我在OpenCL的帮助下在Internet上编写了一个矢量加法代码.我已经包含了一个头文件,即CL/cl.h使用#include.

我使用的是NVIDIA显卡,OpenCL实现是NVIDIA_GPU_Computing_SDK.我的OpenCL头文件驻留在此路径中/opt/NVIDIA_GPU_Computing_SDK/OpenCL/common/inc.通过在编译代码时添加此路径,我可以通过linux终端运行OpenCL程序.但现在我想为此代码编写CMake文件.由于此Path问题,CMake文件适用于C程序,但不适用于OpenCL程序.在终端,我以前输入$cmake .,之后$make,它将搜索由cmake创建的Makefile,现在我的错误是在输入命令后make

fatal error: CL/cl.h: No such file or directory!
Run Code Online (Sandbox Code Playgroud)

现在告诉我如何将此头文件包含到CMake文件中?

arr*_*owd 8

您需要将这些行放入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)
Run Code Online (Sandbox Code Playgroud)

但要注意它不可移植,因为OpenCL SDK可以在另一台机器上的其他地方.正确的方法是使用FindOpenCL.cmake模块.