You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04下CUDA 9.0 Samples编译失败:ld无法找到-lcudart

解决Ubuntu 16.04编译CUDA 9.0示例时can't find -lcudart的问题

我之前碰到过不少用户遇到这个情况——明明CUDA安装正常,nvcc -V和驱动版本都没问题,但编译官方示例就是卡在链接阶段找不到libcudart。本质原因是链接器ld没有找到CUDA库文件的路径,和nvcc能正常工作是两回事(nvcc的路径在PATH里,但库路径需要单独配置)。

试试下面这些步骤,按顺序来:

  • 第一步:确认库文件是否存在
    先检查CUDA 9.0的cudart库有没有安装到位:
ls /usr/local/cuda-9.0/lib64/libcudart.so

如果输出文件路径,说明库存在,只是路径没被链接器识别;如果提示文件不存在,那可能是CUDA安装不完整,需要重新跑CUDA安装包修复。

  • 第二步:临时设置环境变量(当前终端生效)
    在编译示例的终端里,先手动添加库路径:
export LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH

然后重新执行make,看看能不能通过。

  • 第三步:永久配置环境变量(避免每次终端都要设置)
    如果临时设置有效,把环境变量加到你的用户配置文件里:
  1. 打开~/.bashrc文件:
nano ~/.bashrc
  1. 在文件末尾添加两行:
export LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
  1. 保存退出后,让配置生效:
source ~/.bashrc
  • 第四步:如果还是不行,直接给make指定库路径
    可以在make命令里强制指定链接器的库搜索路径:
make LDFLAGS="-L/usr/local/cuda-9.0/lib64"
  • 额外检查:CUDA软链接是否正确
    有些时候,系统默认会用/usr/local/cuda作为CUDA的默认路径,但如果安装后没自动创建软链接,也会导致路径问题:
ls -l /usr/local/cuda

如果输出不是指向cuda-9.0,就手动创建软链接:

sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda

按这些步骤来,基本能解决链接器找不到libcudart的问题。

内容的提问来源于stack exchange,提问作者guorui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:37:22