使用swig编译过程中提示找不到-lXX的问题
前言
- 最近使用Linux系统进行swig的编译时遇到了一些问题,在查阅了各种资料再加上本人的摸索后终于解决了这个问题,所以在此分享一下相关经验,希望能帮到你
- 问题描述:
/usr/bin/ld: 找不到 -lXX
- 以下是具体问题:
/usr/bin/ld: 找不到-lf77blas
/usr/bin/ld: 找不到-lcblas
/usr/bin/ld: 找不到-llapack
/usr/bin/ld: 找不到-latlas
1.首先确认系统上是否安装了该库
root权限运行以下程序:
find /usr/lib -name *xx*
比如/usr/bin/ld: cannot find -lm
这个问题是缺少数学库,在/usr/lib
里找下有没有这个库,命令如下:
find /usr/lib -name *libm*
如果系统上安装了该库,但位置不在/usr/lib 下,比如位置如下:
/usr/lib/x86_64-redhat-linux5E/lib64/libm.so
然后建立一个软链接即可:
ln -sv /usr/lib/x86_64-redhat-linux5E/lib64/libm.so /usr/lib/libm.so
2.若系统中没有安装该库
首先安装apt-file并更新源:
sudo apt-get install apt-file
apt-file update
然后搜索libXX.so文件:(apt-file 将列出所有包含libXX.so文件的apt包)
apt-file search libXX.so
比如说提示/usr/bin/ld: 找不到-llapack
,则使用apt-file search liblapack.so
搜索相关apt包,选择带有dev的apt包安装
安装命令:
sudo apt-get install liblapack-dev
安装完成即可解决该问题,其余问题按照这个方法解决。
最后完美解决/usr/bin/ld: 找不到 -lXX
的问题~~