私のプログラムに動的に接続するには、sles11 sp3を実行しているサーバーでOPENSSLを0.9.8j-0.50.1 - > 1.0.2aにアップグレードする必要があります。
私のビルド環境(sles11sp3)をアップグレードする手順は次のとおりです。
1.公式ホームページからインストールパッケージをダウンロードしてください。https://www.openssl.org/source/そして以下のように
a) wgethttps://www.openssl.org/source/openssl-1.0.2a.tar.gz b)./config -fPIC 共有 --prefix=/usr --openssldir=/etc/ssl c)make d) make install INSTALL_PREFIX=/home/Release/openssl/ e)cd /home/Release/openssl/ d) ls -lf)cp -rf */
2. これで openssl バージョンを実行すると、次のように表示されます(予想)。
OpenSSL> version
OpenSSL 1.0.2a 19 Mar 2015
OpenSSL>
3.私のプログラムを(SNMPとCURLを使用して)コンパイルした後、以下の2つのコンパイル警告が表示されました。
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: 警告: libcrypto.so.0.9.8, /usr 必須/lib64/libnetsnmpagent.soはlibcrypto.so.1.0.0と競合する可能性があります。
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: warning: libssl.so.0.9.8, needed by /usr/lib64/libcurl.so, may conflict with libssl.so.1.0.0
4. したがって、この警告を解決するには、次のように/usr/lib64ディレクトリに次のシンボリックリンクを作成します。
cd /usr/lib64 ln -sf libssl.so.1.0.0 libssl.so.0.9.8 ln -sf libcrypto.so.1.0.0 libcrypto.so.0.9.8
5. これでコンパイル警告は表示されず、ビルド rpm も生成されます (myprogram.rpm)。
6.同じsles11 sp3で実行されているエンタープライズサーバー(ここではプログラムを実行できます)で同じ手順(3回を除く)を実行しました。
rpm -ivh myprogram.rpm
error:Failed dependencies:
libcrypto.so.1.0.0()(64bit) is needed by myprogram
libssl.so.1.0.0()(64bit) is needed by myprogram
私が間違っているか欠けている部分を提案してください。