首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc构建错误:找不到-lssl

gcc构建错误:找不到-lssl
EN

Unix & Linux用户
提问于 2018-02-09 19:04:32
回答 1查看 6.9K关注 0票数 1

嘿大家,

我正在尝试构建一个名为RamCloud on CentOS Linux release 7.4.1708的项目

这个项目具体要求gcc 4.9,用我的零用钱,我只有gcc 4.8,所以我不得不:

  • 从我的系统sudo yum remove --skip-broken gcc中完全删除gcc4.8
  • 安装scl sudo yum install centos-release-scl
  • 安装devtoolset-3,包括gcc4.9 sudo yum install devtoolset-3
  • 启用devtoolset scl enable devtoolset-3 bash

这有助于我以前的一些错误,但是现在当我尝试运行sudo make -j12来构建项目时,我会得到与devtoolset相关的错误。

这是错误的样子:

/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:-lcrypto: ld返回了一个退出状态:主程序/应用程序/客户端错误1stackNewlinemake:等待未完成的jobs....

我不确定,但我认为这是一个连接问题,有人以前遇到过这种情况吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-02-09 19:11:50

这两个错误都与未安装的OpenSSL开发库有关( -lssl是一个相当死气沉沉的工具)。

-lssl可以分为-l,意思是“链接与”,以及ssl,这是gcc想要的图书馆链接。通常,要链接的文件名为lib<whatever_comes_after_the_-l>.a,它需要头文件。文件和头位于dev (基于Debian)或devel (基于RPM的)包中。在这里,ssl -> openssl,但是您需要开发包,所以它要么是openssl,要么是openssl。

因此,现在可以搜索包含lib<whatever_comes_after_the_-l>.a的包。对于基于Debian的发行版,我安装apt-file

在Debian:

代码语言:javascript
复制
apt-file update
apt-file search libssl.a 

在CentOS中:

代码语言:javascript
复制
rpm -q -f libssl.a

在Debian/Ubuntu中,要安装它们,请执行:

代码语言:javascript
复制
sudo apt-get install libssl-dev

在CentOS中,要安装它们,请执行以下操作:

代码语言:javascript
复制
sudo yum install openssl-devel
票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/423107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档