gcc 建構錯誤:找不到 -lssl
大家好,
我正在嘗試在這個項目上建構一個名為RamCloud
CentOS Linux release 7.4.1708
的項目, 特別需要gcc 4.9,而我的 centos 我只有gcc 4.8,所以我不得不:
- 從我的系統中徹底刪除 gcc4.8
sudo yum remove --skip-broken gcc
- 安裝 scl
sudo yum install centos-release-scl
- 安裝
包含gcc4.9的 devtoolset-3
sudo yum install devtoolset-3
- 啟用開發工具集
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:錯誤:ld返回1退出狀態
make:$$ obj.master/apps/client $$錯誤 1
make: 等待未完成的工作….
我不確定,但我認為這是一個連結問題,以前有人遇到過嗎?
這兩個錯誤都與未安裝的 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