首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在CMake文件中添加头文件路径

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

Stack Overflow用户
提问于 2012-10-12 18:34:59
回答 3查看 16.1K关注 0票数 5

我是OpenCL的新手。我已经在互联网的帮助下用OpenCL写了一个向量加法代码。我已经包含了一个头文件,即使用#includeCL/cl.h

我使用的是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之后

代码语言:javascript
运行
复制
fatal error: CL/cl.h: No such file or directory!

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-12 20:19:28

您需要将以下代码行放入CMakeLists.txt:

代码语言:javascript
运行
复制
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模块。

票数 14
EN

Stack Overflow用户

发布于 2012-10-12 20:21:04

也许您可以使用CMake "find“脚本,如下所示:

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

OpenCL编程指南手册中的CMake文件示例:http://code.google.com/p/opencl-book-samples/source/browse/trunk/CMakeLists.txt?r=14

票数 2
EN

Stack Overflow用户

发布于 2014-04-16 22:58:22

我正在寻找可以在Windows,OSX和Linux上很好工作的FindOpenCL.cmake宏…我找不到在每个平台上都能很好工作的,所以我写了一个新的,我在几个项目中使用(webcl-validator和opencl-testsuite)。

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

特别是在这个版本中对Windows的支持得到了改进。

在Windows中,它检查是否应该使用64位或32位库,并尝试根据Nvidia、英特尔和AMD OpenCL SDK设置的环境变量来查找库。

它还试图在Cygwin中找到.lib,这与我尝试过的其他脚本不起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12857189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档