无法使用 sudo 命令编译 cuda

Posted

技术标签:

【中文标题】无法使用 sudo 命令编译 cuda【英文标题】:Cannot compile cuda using sudo command 【发布时间】:2014-09-08 08:24:05 【问题描述】:

我尝试使用 nvcc 但使用 sudo 命令编译 cuda 程序。首先,它找不到 nvcc 编译器,所以我按照here 的建议做了,并在secure_path 中列出的目录之一中创建了一个指向nvcc 的符号链接,如下所示:sudo ln -s /path/to/nvcc /sbin/nvcc。

但现在我尝试编译并不断收到以下错误:nvcc 致命:未指定 libdevice 库的路径。

我猜这与在 root 模式下未正确设置的 LD_LIBRARY_PATH 变量有关,但我找不到解决它的方法。 有什么想法吗?

【问题讨论】:

LD_LIBRARY_PATH 与编译无关。它是操作系统的运行时指令,用于确定在启动应用程序时从何处加载共享库。 【参考方案1】:

不仅要像你一样尝试提供 nvcc 的完整路径,还要像库一样提供其他依赖项的完整路径,即:

--dont-use-profile -ldir <path to your cuda_sdk/nvvm/libdevice/ > -I<path to your cuda_sdk/include/ dir> -L<path to your cuda_sdk/lib64/ dir>

解决方案基于this discussion,nvcc命令行参数解释见documentation

【讨论】:

是的,做到了。谢谢!

以上是关于无法使用 sudo 命令编译 cuda的主要内容,如果未能解决你的问题,请参考以下文章

为啥 nvcc 无法使用 boost::spirit 编译 CUDA 文件?

为啥我无法链接到使用动态并行和可分离编译的 CUDA 静态库?

sudo命令无法正常使用

解决Linux下无法使用sudo命令问题

无法在 Docker 中使用 sudo 命令,显示“bash: sudo: command not found”

Laravel Forge 无法运行 sudo 命令