libcrypto.so に依存する共有ライブラリ (「libX.so」) に対して自分のコードをリンクしようとしています。libcrypto.so.1.0.0 をインストールしましたが、特に libcrypto.so.0.9.8 が必要なようです。1.0.0 とリンクさせる方法はありますか? 私のシステム (archlinux) に 0.9.8 をインストールするには、他のパッケージを壊す必要があります。
/usr/bin/ld: warning: libcrypto.so.0.9.8, needed by /usr/local/lib/libX.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/libX.so: undefined reference to `SHA512@OPENSSL_0.9.8'
...
編集:
おそらくもっと情報を追加する必要があります。openssl 0.9.8 をコンパイルして、プレフィックス /usr/local にインストールしようとしました。しかし、このライブラリを見つけたように見えても、ビルド時にまだエラーがあります:
/usr/local/lib/libX.so: undefined reference to `SHA512@OPENSSL_0.9.8'
...
libcrypto はこれを定義しているようです:
$ nm /usr/local/ssl/lib/libcrypto.so.0.9.8 | grep SHA512
000000000006f9b0 T SHA512
...
次のスクリプトを使用してコンパイルしています。
export LD_LIBRARY_PATH+=:/usr/local/ssl/lib
gcc -I/usr/local/include/ test.c -o test -lX
これは、libX での ldd の出力です。
$ ldd /usr/local/lib/libX.so
/usr/local/lib/libX.so: /usr/local/ssl/lib/libcrypto.so.0.9.8: no version information available (required by /usr/local/lib/libX.so)
libssl.so.0.9.8 => /usr/local/ssl/lib/libssl.so.0.9.8 (0x00007f9c4e329000)
libcrypto.so.0.9.8 => /usr/local/ssl/lib/libcrypto.so.0.9.8 (0x00007f9c4df99000)
...