6
问题描述:
在Ubuntu22.04 上 执行 python webui.py
,gradio 页面上生成语言会出现下面的错误
/usr/bin/ld: 找不到 -lcuda: 没有那个文件或目录
/usr/bin/ld: 当搜索用于 /lib/i386-linux-gnu/libcuda.so 时跳过不兼容的 -lcuda
/usr/bin/ld: 当搜索用于 /lib/i386-linux-gnu/libcuda.so 时跳过不兼容的 -lcuda
collect2: error: ld returned 1 exit status
分析
应该是程序运行时没有找到相应的动态库 libcuda.so, 这个cuda的动态库在 cuda 库目录下的子目录 stubs 中, 可能是这个stubs 没有加入系统的动态库路径.
解决方案修改 ldconfig 里的cuda 配置, 添加stubs 路径. 请根据自己电脑上的cuda 版本来设置, 下面是我的环境上的例子:
sudo vim /etc/ld.so.conf/cuda-12-4.conf
# 新增一行, 保存
/usr/local/cuda-12.4/targets/x86_64-linux/lib/stubs
刷新缓存看看能否找到libcuda.so
hhk@ubuntu:~$ sudo ldconfig
hhk@ubuntu:~$ sudo ldconfig -p | grep libcuda.so
libcuda.so.1 (libc6,x86-64) => /usr/local/cuda-12.4/targets/x86_64-linux/lib/stubs/libcuda.so.1
...
能找到正确的libcuda.so 了
然后再试一下执行 python webui.py
, OK, 一切正常了, 而且推理速度还挺快的, 赞!