大家好,
我正在尝试构建一个名为内存云在CentOS Linux release 7.4.1708
这个项目上特别需要海湾合作委员会4.9和我的centos我只有海湾合作委员会4.8所以我必须:
- 从我的系统中完全删除 gcc4.8
sudo yum remove --skip-broken gcc
- 安装SCL
sudo yum install centos-release-scl
- 安装
开发工具集-3
包括海湾合作委员会4.9
sudo yum install devtoolset-3
- 启用开发工具集
scl enable devtoolset-3 bash
这有助于解决我之前遇到的一些错误,但现在当我尝试运行sudo make -j12
来构建项目时,我收到与以下相关的错误开发工具集
错误如下所示:
/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/ld: 找不到-lssl /opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/ld: 找不到-lcrypto collect2:错误:ld 返回 1 退出状态
make: [obj.master/apps/client] 错误 1
make:等待未完成的工作......
我不确定,但我认为这是一个链接问题,以前有人遇到过这个问题吗?
答案1
这两个错误都与未安装 OpenSSL 开发库有关(-lssl 是一个相当死的赠品)。
可以-lssl
分为-l
,意思是“链接到”,和ssl
,这是要求 gcc 链接的所需库。通常,要链接的文件已命名lib<whatever_comes_after_the_-l>.a
并且需要标头。文件和标头位于 dev(基于 Debian)或 devel(基于 RPM)包中。这里,ssl -> openssl,但是你需要开发包,所以它是 openssl-dev 或 openssl-devel。
现在您可以搜索包含lib<whatever_comes_after_the_-l>.a
.对于基于 Debian 的发行版,我安装apt-file
.
在 Debian 中:
apt-file update
apt-file search libssl.a
在 CentOS 中:
rpm -q -f libssl.a
在 Debian/Ubuntu 中,要安装它们,请执行以下操作:
sudo apt-get install libssl-dev
在 CentOS 中,要安装它们,请执行以下操作:
sudo yum install openssl-devel