首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmake找不到文件,除非我给它提供确切的路径

cmake找不到文件,除非我给它提供确切的路径
EN

Stack Overflow用户
提问于 2017-03-17 06:47:27
回答 1查看 311关注 0票数 1

好的,我正在玩boost,想要openCL。下载了这个包,我在这里:

代码语言:javascript
复制
 /root/boost_1_63_0/libs/compute

当我做"cmake“的时候它告诉我找不到openCL。

代码语言:javascript
复制
[root@172-1-8-3 compute]# cmake . -DOpenCL_INCPATH=/opt/nvidia/cuda/include
DEBUG OpenCL_INCPATH=/opt/nvidia/cuda/include
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
  Could NOT find OpenCL (missing: OpenCL_INCLUDE_DIRS)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
  cmake/opencl/FindOpenCL.cmake:76 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:20 (find_package)

我添加了debug行,以确保我的变量确实得到了设置。我可以将路径添加到行中

代码语言:javascript
复制
FIND_PATH(OpenCL_INCLUDE_DIRS CL/cl.h PATHS  "$ENV{CUDADIR}/include" ${_OpenCL_INC_CAND} "/usr/local/cuda/include" "/opt/cuda/include" "/opt/AMDAPP/include" ENV OpenCL_INCPATH)

如果我在路径后面添加"/opt/nvidia/cuda/include“,那么它会很高兴地找到OpenCL。但是,它应该是从"ENV ...“中找到的。比特。如果我需要用东西的确切位置来破解源代码,那么我还不如没有构建工具。

我在路径上使用/不使用终止/进行了尝试。我知道我可能不应该在这里做这件事,但似乎如果我能让它工作,那么正常的构建就会正常工作。实际上,我想这样做是为了构建支持GPU的cpp-ethereum。

我遗漏了什么??

EN

回答 1

Stack Overflow用户

发布于 2017-03-19 11:12:28

如果要从命令行手动指定include目录,则只需将

代码语言:javascript
复制
-DOpenCL_INCLUDE_DIRS=/opt/nvidia/cuda/include

参数添加到命令行上的cmake。这将覆盖find_path的结果。

如果您尝试让CMake读取环境变量,则其语法为

代码语言:javascript
复制
$ENV{NAME_OF_ENVIRONMENT_VARIABLE}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42846159

复制
相关文章

相似问题

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