好的,我正在玩提升并想要openCL。下载了包裹,我在这里:
/root/boost_1_63_0/libs/compute
当我做“cmake”时。它告诉我它找不到openCL。
[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)
我添加了调试行以确保我的变量实际上已经设置好了。 我可以添加到行的路径
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)
如果我在PATHS之后添加“/ opt / nvidia / cuda / include”,那么它很高兴找到OpenCL。但是,肯定它应该从“ENV ...”位找到它。如果我需要使用确切的位置来破解源代码,那么我可能也没有构建工具。
我尝试了/没有终止/在路径上。我知道我可能不应该在这里这样做,但似乎我可以让它工作,然后正常的构建将正常工作。我实际上想要用GPU支持来构建cpp-ethereum。
我错过了什么?
答案 0 :(得分:1)
如果要从命令行手动指定include dir,那么您需要做的只是传递
-DOpenCL_INCLUDE_DIRS=/opt/nvidia/cuda/include
命令行上的cmake参数。这将覆盖find_path的结果。
如果您尝试让CMake读取环境变量,则其语法为
$ENV{NAME_OF_ENVIRONMENT_VARIABLE}