undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.x报错缺失

比如我程序运行,和cuda、torch相关的非常容易碰到问题

错误信息 undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12 表明您的系统中缺少一个名为 __nvJitLinkAddData_12_1 的符号定义,这个符号应该在 libnvJitLink.so.12 这个动态链接库中定义。

1、查看cuda版本是否正常

nvcc -V

或在虚拟环境中加载

import torch
print(torch.version.cuda)

2、LD_LIBRARY_PATH 环境变量

在家目录~/.bashrc中添加 export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
这里切换为你的cuda路径

3、搜索动态链接库

find ~/ -name "libnvJitLink.so.12"

这里缺什么搜索什么。
在这里插入图片描述
可以看到我的环境中的动态链接库所在位置为换线部分

4、添加到临时环境变量

export LD_PRELOAD="/home/ph/anaconda3/envs/torch2.1/lib/python3.9/site-packages/nvidia/nvjitlink/lib/libnvJitLink.so.12"

再次启动程序,就不会报错

### 解决 `ImportError` 和未定义符号 `__nvJitLinkComplete_12_4` 当遇到类似于 `ImportError: ... undefined symbol: __nvJitLinkComplete_12_4, version libnvJitLink.so.12` 的错误时,这通常意味着 CUDA 或 NVIDIA 工具包中的某些库文件存在版本不兼容或损坏的情况。 #### 可能的原因 此类问题可能由以下几个原因引起: - 安装过程中出现了中断或异常情况,导致部分依赖项未能正确安装。 - 使用的不同软件组件之间的版本冲突,特别是 CUDA 版本与 PyTorch 所需版本不符。 - 系统环境变量配置不当,使得加载了错误路径下的共享库[^1]。 #### 解决策略 为了修复这个问题,可以尝试以下几种方法之一来解决问题: ##### 方法一:重新安装CUDA工具链及相关驱动程序 通过卸载现有CUDA并按照官方文档指导全新安装最新稳定版的CUDA Toolkit以及相应的显卡驱动。确保下载适合当前操作系统的版本,并遵循所有提示完成整个过程。 ##### 方法二:更新PyTorch至匹配版本 如果不想更改现有的CUDA设置,则可以选择调整Python环境中使用的PyTorch版本以适应已有的CUDA版本。可以通过pip命令指定特定版本号来进行安装: ```bash pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 ``` 请注意上述URL中的cu113代表适用于CUDA 11.3的构建;应根据实际情况替换为合适的标签[^2]。 ##### 方法三:清理缓存重试 有时本地编译缓存也可能引发类似的链接失败现象。清除掉~/.cache目录下相关内容后再做一次完整的环境重建可能会有所帮助。 ##### 方法四:检查动态链接器配置 确认/etc/ld.so.conf.d内的配置文件是否包含了指向正确位置的行项目,必要时添加缺失条目并将变更应用到全局范围(`sudo ldconfig`)。另外还需验证LD_LIBRARY_PATH环境变量里是否有干扰性的自定义设定影响到了正常查找流程[^3]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值