安装过程看README.md
sh
sudo autoreconf -if
sudo ./configure --enable-freedist --enable-as-02
sudo make
sudo make dist
sudo make install
=========================
wsl@LAPTOP-N39A7Q24:/usr/local/src/asdcplib-rel_2_10_35$ ls /usr/local/lib/libasdcp* /usr/local/lib/libasdcp-2.10.35.so /usr/local/lib/libasdcp.la /usr/local/lib/libasdcp.so.2 /usr/local/lib/libasdcp.a /usr/local/lib/libasdcp.so /usr/local/lib/libasdcp.so.2.13.1 wsl@LAPTOP-N39A7Q24:/usr/local/src/asdcplib-rel_2_10_35$ asdcp-test -v asdcp-test: error while loading shared libraries: libasdcp-2.10.35.so: cannot open shared object file: No such file or directory wsl@LAPTOP-N39A7Q24:/usr/local/src/asdcplib-rel_2_10_35$
这个错误表明系统在运行时找不到 libasdcp-2.10.35.so
动态库文件,尽管它已经安装在 /usr/local/lib
目录下。这是因为 Ubuntu/WSL 默认不会自动搜索 /usr/local/lib
下的库文件。
解决方法
1. 临时解决方案(当前终端有效)
在终端中临时添加库路径:
bash
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH asdcp-test -v # 再次运行测试程序
2. 永久解决方案
将库路径永久添加到系统配置中:
bash
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/asdcplib.conf sudo ldconfig # 更新系统库缓存 asdcp-test -v # 验证是否生效
3. 检查库文件权限
确保库文件有可执行权限:
bash
sudo chmod +x /usr/local/lib/libasdcp*
4. 验证库是否被系统识别
运行以下命令检查库是否在系统中注册:
bash
ldconfig -p | grep libasdcp
如果输出中包含 libasdcp-2.10.35.so
,则表示已正确加载。
可能的问题原因
-
路径未配置
Ubuntu/WSL 默认不包含/usr/local/lib
在动态库搜索路径中,需手动添加。 -
权限问题
库文件可能缺少可执行权限(但通常安装时已自动设置)。 -
符号链接问题
检查/usr/local/lib/libasdcp.so
是否指向正确的版本:bash
ls -l /usr/local/lib/libasdcp.so*
正常应显示类似:
text
libasdcp.so -> libasdcp.so.2.13.1 libasdcp.so.2 -> libasdcp.so.2.13.1 libasdcp.so.2.13.1
附:完整修复流程
bash
# 1. 添加库路径 echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/asdcplib.conf # 2. 更新库缓存 sudo ldconfig # 3. 验证 ldconfig -p | grep libasdcp asdcp-test -v
如果问题仍未解决,请提供以下信息进一步排查:
bash
ls -l /usr/local/lib/libasdcp* ldd $(which asdcp-test) # 查看程序依赖的库