CMake Error at /usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859 (message): Specify CUDA_TOOL

这篇具有很好参考价值的文章主要介绍了CMake Error at /usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859 (message): Specify CUDA_TOOL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

从错误日志中可以看到,问题出在CMake无法找到CUDA工具包的根目录。错误消息是:

CMake Error at /usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859 (message):
  Specify CUDA_TOOLKIT_ROOT_DIR

这意味着CMake需要知道CUDA工具包的安装位置,以便正确配置和构建denseflow。

解决方式1

为了解决这个问题,你需要设置CUDA_TOOLKIT_ROOT_DIR环境变量,指向CUDA的安装目录。通常,CUDA安装在/usr/local/cuda目录,但这可能因系统而异。

你可以通过以下命令设置CUDA_TOOLKIT_ROOT_DIR环境变量,并再次运行脚本:

sudo -E ZZROOT=/home/yancy/app CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda ./zzdenseflow.sh

如果CUDA安装在不同的目录,请将/usr/local/cuda替换为实际的CUDA安装目录。

此外,请注意,你的日志显示C++编译器的版本可能不匹配。日志中显示:

-- The CXX compiler identification is GNU 4.8.5

如果你的CUDA版本需要更高版本的编译器,这可能会导致问题。在这种情况下,你可能需要更新你的C++编译器或在环境变量中指定一个不同的编译器。

是的,/usr/local/cuda-11.1 看起来像是 CUDA 的一个标准安装目录。通常,/usr/local/cuda 是一个符号链接,指向最新版本的 CUDA 安装目录(例如 /usr/local/cuda-11.1)。如果 /usr/local/cuda 不存在或不是指向你想使用的 CUDA 版本的链接,那么直接使用 /usr/local/cuda-11.1 作为 CUDA_TOOLKIT_ROOT_DIR 是合适的。

你可以通过以下命令设置 CUDA_TOOLKIT_ROOT_DIR 环境变量,并再次运行脚本:

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 环境变量没有被正确传递给 sudo。这可能是因为 sudo 的默认配置不允许传递自定义环境变量。

我们可以尝试使用不同的方法来设置 CUDA_TOOLKIT_ROOT_DIR。你可以尝试直接在脚本中设置这个变量。首先,打开 zzdenseflow.sh 脚本文件:

nano zzdenseflow.sh

然后,在脚本的顶部,紧接着 #!/bin/bash 这一行之后,添加以下行:

export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1

保存文件并退出编辑器。

现在,再次尝试运行脚本,但这次不需要在命令行中设置 CUDA_TOOLKIT_ROOT_DIR

sudo -E ZZROOT=/home/yancy/app ./zzdenseflow.sh

这应该会将 CUDA_TOOLKIT_ROOT_DIR 设置为正确的路径,并允许 CMake 找到 CUDA 工具包。

最终解决方式

看来我们需要采取不同的策略。让我们尝试在 cmake 命令行中直接指定 CUDA_TOOLKIT_ROOT_DIR。这可以通过在 cmake 命令中添加一个参数来完成。

请再次打开 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 命令行中设置 CUDA_TOOLKIT_ROOT_DIR

保存文件并退出编辑器。

现在,再次运行脚本:

sudo -E ZZROOT=/home/yancy/app ./zzdenseflow.sh

这种方法应该直接在 CMake 配置过程中设置 CUDA 工具包的路径。如果你仍然遇到问题,请告诉我错误消息,我会继续帮助你解决。文章来源地址https://www.toymoban.com/news/detail-737223.html

到了这里,关于CMake Error at /usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859 (message): Specify CUDA_TOOL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包