/usr/bin/ld: libcrypto.a(wp_block.o): 共有オブジェクトを作成する場合、`.rodata' に対する再配置 R_X86_64_32S は使用できません。-fPIC libcrypto.a(wp_block.o) で再コンパイル: シンボルの追加中にエラーが発生しました: 値が正しくありません
事実上、これは共有オブジェクトを構築していることを意味しますが、指定していません-fPIC
。PIC は位置に依存しないコードであり、アドレスがプログラム カウンターに対して相対的であることを保証するため、コードを簡単に再配置できます (モジュールのベース アドレスは簡単に変更でき、機能します)。
この問題は Fedora で見たことがあると思います。で使用していると主張しているのでCFLAGS
、代わりにこれを試してください:
$ make clean && make dclean
$ export CFLAGS="-fPIC"
$ ./config shared no-ssl2 ...
$ make
...
これmake clean && make dclean
により、すべての成果物 (古いオブジェクト ファイルを含む) が消去されます。
新しいバージョンの OpenSSL はmake distclean
、 ではなくに応答しmake dclean
ます。
libcrypto.a が何であるかはわかりませんが、openssl の一部であるようです。
これは、OpenSSL が AES、Cameilla、SHA、big integers などの暗号およびヘルパーを配置するライブラリでlibssl.a
あり、SSL および TLS が配置される場所です。libssl.a
に依存しますlibcrypto.a
。
OpenSSL の新しいバージョンは、インストール後に共有ライブラリを見つけることができません。問題 3993、libssl.so.1.1: OpenSSL バグ トラッカーで共有オブジェクト ファイルを開けないも参照してください。
ライブラリが実行可能ファイルを壊さないように、静的リンクを使用したい。その場合は、Makefile で と の使用法を見つけて、 と に変更することを-lssl
お勧めします。-lcrypto
-l:libssl.a
-l:libcrypto.a