2017-03-16 122 views
1

好吧,我在玩boost並希望openCL。下載包並在這裏:cmake找不到文件,除非我給它確切的路徑

/root/boost_1_63_0/libs/compute 

當我做一個「cmake」。它告訴我它找不到openCL。

[[email protected] 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) 

「的/ opt/NVIDIA/CUDA /包括」路徑之後,然後愉快地發現的OpenCL。但是,肯定它應該從「ENV ...」位找到它。如果我需要破解源代碼的確切位置,那麼我可能沒有構建工具。

我試着用/不用終止/在路徑上。我知道我可能不應該在這裏做這件事,但似乎如果我可以得到這個工作,那麼正常的構建將正常工作。我真的想要這樣做來搭建支持GPU的cpp-ethereum。

我在想什麼?

+1

'ENV'指**環境變量**,爲* CMake的變量對面*。通過使用'cmake -DOpenCL_INCPATH = <...>'您設置CMake變量。相反,設置一個環境:'OpenCL_INCPATH = <...> cmake .' – Tsyvarev

回答

0

如果要手動指定包括在命令行目錄,那麼所有你需要做的是通過

-DOpenCL_INCLUDE_DIRS=/opt/nvidia/cuda/include 

參數C進行命令行上。這將覆蓋find_path的結果。

如果你正試圖使CMake的閱讀環境變量,語法是否

$ENV{NAME_OF_ENVIRONMENT_VARIABLE} 
相關問題