2017-03-16 6 views
1

OK、私は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

手動でコマンドラインから含めるディレクトリを指定したい場合は、あなたがする必要があるすべては、コマンドラインにcmakeのために

-DOpenCL_INCLUDE_DIRS=/opt/nvidia/cuda/include 

引数を渡すです。これは、find_pathの結果を上書きします。

あなたはcmakeのは、環境変数を読んで作ろうとしている場合は、そのための構文は

$ENV{NAME_OF_ENVIRONMENT_VARIABLE} 
関連する問題