场景
当我们对某个源码包进行编译安装,再执行 configure 有时候会因为找不到库文件,报错如下:
[root@localhost ~]# ./configure
openssl/crypto.h:没有那个文件或目录
出现问题: openssl/crypto.h:没有那个文件或目录
问题分析
因为编译要使用 lib 库文件,但是由于没有文件索引关系,导致搜索不到库文件,从而报错。
解决方法
通过使用 locate 加载库文件,创建索引关系,更新 lib 库,从而解决这个问题。
首先,加载库文件,创建索引关系
[root@localhost ~]# locate crypto
打印以下内容:
...
/usr/lib64/.libcrypto.so.1.0.2k.hmac
/usr/lib64/.libcrypto.so.10.hmac
/usr/lib64/libcrypto.so.1.0.2k
/usr/lib64/libcrypto.so.10
/usr/lib64/libk5crypto.so.3
/usr/lib64/libk5crypto.so.3.1
...
然后,创建库文件软链接
[root@localhost ~]# ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib/libcrypto.so
之后,再次编译执行 configure 即可
[root@localhost ~]# ./configure