ubuntu上cmake時にcudaのバージョンが一致しないことを発見しました

1368 ワード

文書ディレクトリ
  • 一、問題
  • 二、解決方法
  • 三、原理
  • 一、問題
    システムを再インストールしましたが、元のソフトウェアはアンインストールされていない可能性があります.例えば、以前インストールされていたのはcuda 8.0+opencv 3.4.1で、新しくインストールされたのはcuda 9.0+opencv 3.4.1です.ここではopencv 3.4.1を紹介しません.cmakeが直面した問題だけです.
    cmakeリンクopencvの場合、このステップでCould NOT find CUDA:Found unsuitable version"8.0"、but required is exact version"9.0"(found/usr/local/cuda)に遭遇します.
    find_package(OpenCV REQUIRED)
    

    システムかcuda 8.0かと思いますが、実は9.0のバージョンをインストールしています.端末nvcc-Vの時も9.0のバージョンで、8.0のフォルダをすべて削除しましたが、cmakeではcuda-9.0は見つかりませんでした.
    Opencvの再ロード、環境変数の設定などは解決できません.
    二、解決方法
    以下の資料を調べて得た:ブロガーの解決方法:まずcdを現在のフォルダに
    mkdir build
    # cmake ..      ,     
    cmake -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.0 .. #ok    ,      cuda  
    

    三、原理
    げんりかいてんhttp://www.it1352.com/344521.html:
    cmakeの言及CUDA_TOOLKIT_ROOT_DIRは、環境の1つではなくCMakeの変数として使用されます.これがなぜあなたがそれを.bashrcが働かないのかということです.FindCUDA.cmakeを見て、スクリプトはユーザーにCUDA_を指定するように要求します.TOOLKIT_ROOT_DIR prefiXがNVCCの位置ができない場合、システムパスと要求の決定でfind_に指定されます.package().使用するインストールバージョン別ツールボックス環境変数CUDA_を設定BIN_PATHがcmakeを実行する前(例えば、CUDA_BIN_PATH=の/usr/ローカル/cuda 1.0であり、デフォルト/usr/ローカル/CUDAではない)または構成後にCUDA_を設定するTOOLKIT_ROOT_DIR.値CUDA_を変更した場合TOOLKIT_ROOT_DIRは、依存経路上の様々なコンポーネントが移行します.
    だからCUDA_BIN_PATHから.bashrcまたはCUDA_の指定TOOLKIT_ROOT_DIR来cmakeの:http://www.it1352.com/344521.html