みなさん、CentOS Linux release 7.4.1708
でRamCloudというプロジェクトをビルドしようとしています
このプロジェクトには特にgcc 4.9が必要で、私のcentosではgcc 4.8しかなかったので、次のことをしなければなりませんでした:
Sudo yum remove --skip-broken gcc
Sudo yum install centos-release-scl
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
と、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