web-dev-qa-db-ja.com

gccビルドエラー:-lsslが見つかりません


みなさん、
CentOS Linux release 7.4.1708RamCloudというプロジェクトをビルドしようとしています
このプロジェクトには特にgcc 4.9が必要で、私のcentosではgcc 4.8しかなかったので、次のことをしなければなりませんでした:

  • システムからgcc4.8を完全に削除しますSudo yum remove --skip-broken gcc
  • sclをインストールしますSudo yum install centos-release-scl
  • インストール devtoolset- これにはgcc4.9Sudo 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:エラー:ldが1つの終了ステータスを返しました
make:[obj.master/apps/client]エラー1
make:未完了のジョブを待っています...

よくわかりませんが、リンクの問題だと思います。以前にこれに遭遇した人はいますか?

1
Mheni

どちらのエラーも、OpenSSL開発ライブラリがインストールされていないことに関連しています(-lsslはかなり死んだものです)。

-lsslは、「リンク先」を意味する-lと、gccがリンクを要求される目的のライブラリであるsslに分割できます。通常、リンク先のファイルは次のとおりです。 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では、それらをインストールするには、次のようにします。

Sudo apt-get install openssl-dev

CentOSでは、それらをインストールするには、次のようにします。

Sudo yum install openssl-devel
3
Rui F Ribeiro