問題
從錯誤日志中可以看到,問題出在CMake無法找到CUDA工具包的根目錄。錯誤消息是:
CMake Error at /usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859 (message):
Specify CUDA_TOOLKIT_ROOT_DIR
這意味著CMake需要知道CUDA工具包的安裝位置,以便正確配置和構(gòu)建denseflow。
解決方式1
為了解決這個問題,你需要設(shè)置CUDA_TOOLKIT_ROOT_DIR
環(huán)境變量,指向CUDA的安裝目錄。通常,CUDA安裝在/usr/local/cuda
目錄,但這可能因系統(tǒng)而異。
你可以通過以下命令設(shè)置CUDA_TOOLKIT_ROOT_DIR
環(huán)境變量,并再次運(yùn)行腳本:
sudo -E ZZROOT=/home/yancy/app CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda ./zzdenseflow.sh
如果CUDA安裝在不同的目錄,請將/usr/local/cuda
替換為實(shí)際的CUDA安裝目錄。
此外,請注意,你的日志顯示C++編譯器的版本可能不匹配。日志中顯示:
-- The CXX compiler identification is GNU 4.8.5
如果你的CUDA版本需要更高版本的編譯器,這可能會導(dǎo)致問題。在這種情況下,你可能需要更新你的C++編譯器或在環(huán)境變量中指定一個不同的編譯器。
是的,/usr/local/cuda-11.1
看起來像是 CUDA 的一個標(biāo)準(zhǔn)安裝目錄。通常,/usr/local/cuda
是一個符號鏈接,指向最新版本的 CUDA 安裝目錄(例如 /usr/local/cuda-11.1
)。如果 /usr/local/cuda
不存在或不是指向你想使用的 CUDA 版本的鏈接,那么直接使用 /usr/local/cuda-11.1
作為 CUDA_TOOLKIT_ROOT_DIR
是合適的。
你可以通過以下命令設(shè)置 CUDA_TOOLKIT_ROOT_DIR
環(huán)境變量,并再次運(yùn)行腳本:
sudo -E ZZROOT=/home/yancy/app CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1 ./zzdenseflow.sh
這將指定 CUDA 工具包的根目錄為 /usr/local/cuda-11.1
并嘗試再次安裝 denseflow。
解決方式2
看起來 CUDA_TOOLKIT_ROOT_DIR
環(huán)境變量沒有被正確傳遞給 sudo
。這可能是因?yàn)?sudo
的默認(rèn)配置不允許傳遞自定義環(huán)境變量。
我們可以嘗試使用不同的方法來設(shè)置 CUDA_TOOLKIT_ROOT_DIR
。你可以嘗試直接在腳本中設(shè)置這個變量。首先,打開 zzdenseflow.sh
腳本文件:
nano zzdenseflow.sh
然后,在腳本的頂部,緊接著 #!/bin/bash
這一行之后,添加以下行:
export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1
保存文件并退出編輯器。
現(xiàn)在,再次嘗試運(yùn)行腳本,但這次不需要在命令行中設(shè)置 CUDA_TOOLKIT_ROOT_DIR
:
sudo -E ZZROOT=/home/yancy/app ./zzdenseflow.sh
這應(yīng)該會將 CUDA_TOOLKIT_ROOT_DIR
設(shè)置為正確的路徑,并允許 CMake 找到 CUDA 工具包。
最終解決方式
看來我們需要采取不同的策略。讓我們嘗試在 cmake
命令行中直接指定 CUDA_TOOLKIT_ROOT_DIR
。這可以通過在 cmake
命令中添加一個參數(shù)來完成。
請?jiān)俅未蜷_ zzdenseflow.sh
腳本:
nano zzdenseflow.sh
找到以下行:
cmake -DCMAKE_INSTALL_PREFIX="$ROOTDIR" ..
并修改為:
cmake -DCMAKE_INSTALL_PREFIX="$ROOTDIR" -DCUDA_TOOLKIT_ROOT_DIR="/usr/local/cuda-11.1" ..
這將直接在 cmake
命令行中設(shè)置 CUDA_TOOLKIT_ROOT_DIR
。
保存文件并退出編輯器。
現(xiàn)在,再次運(yùn)行腳本:文章來源:http://www.zghlxwxcb.cn/news/detail-737223.html
sudo -E ZZROOT=/home/yancy/app ./zzdenseflow.sh
這種方法應(yīng)該直接在 CMake 配置過程中設(shè)置 CUDA 工具包的路徑。如果你仍然遇到問題,請告訴我錯誤消息,我會繼續(xù)幫助你解決。文章來源地址http://www.zghlxwxcb.cn/news/detail-737223.html
到了這里,關(guān)于CMake Error at /usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859 (message): Specify CUDA_TOOL的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!