
こんにちは皆さん、
私は次のようなプログラムを作ろうとしています。メモリクラウド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
- インストールする
開発ツールセット-3
含むGCC 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は非常に危険です)。
「リンク」を意味するものと、gccがリンクする必要がある必須ライブラリに分けることが-lssl
できます。通常、リンクするファイルには名前が付けられ、ヘッダーが必要です。ファイルとヘッダーはdev(Debianベース)またはdevel(RPMベース)パッケージにあります。ここではssl -> opensslですが、開発パッケージが必要なので、openssl-devまたはopenssl-develです。-l
ssl
lib<whatever_comes_after_the_-l>.a
これで検索できます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