gcc 构建错误:找不到 -lssl

gcc 构建错误:找不到 -lssl


大家好,
我正在尝试构建一个名为内存云CentOS Linux release 7.4.1708
这个项目上特别需要海湾合作委员会4.9和我的centos我只有海湾合作委员会4.8所以我必须:

  • 从我的系统中完全删除 gcc4.8sudo yum remove --skip-broken gcc
  • 安装SCLsudo 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

相关内容