CentOS 5.4では、OpenSSLは「共有」オプションなしで正常にコンパイルされます。しかし、そのオプションを渡すと、コンパイルは次のように失敗します。
/ usr/bin/ld:libcrypto.a(x86_64-gcc.o):「ローカルシンボル」に対する再配置R_X86_64_32は、共有オブジェクトを作成するときに使用できません。 -fPICで再コンパイルします
私が試してみると:./config shared CFLAGS=-fPIC
それは機能しません。
OpenSSLを「共有」オプションでコンパイルするにはどうすればよいですか?
ありがとう
ここでも同じ問題がありますが、通常、Makefileはコンパイラまたはリンカオプションの環境変数を考慮します。
したがって、-fPIC
オプションを配置する場合before configureスクリプトを呼び出すと、それが処理されるはずです。あなたはそれを行うことができます:
CFLAGS=-fPIC ./config shared --prefix=/your/path
または
export CFLAGS=-fPIC
./config shared --prefix=/your/path
それは私のために働いた。
オプションがあります-fXXX
configに渡すことができるので、次のように実行できます。
./config -fPIC shared
OpenSSLバージョン1.0(本日公開)は共有オプションで正常に動作します
共有ライブラリを使用してOpenSSLを構築した方法は次のとおりです。私はクロスコンパイラを使用しているので、ほとんど使用しないものを指定していることに注意してください。
# hop into the downloads folder
cd ~/Downloads
# get the branch of openssl you want
git clone -b OpenSSL_1_0_2-stable --single-branch https://github.com/openssl/openssl.git
# make an installation directory
mkdir openssl-install
# go into the cloned openssl directory
cd openssl
# absolute paths needed for the configure
# the "-fPIC -mhard-float" are CFLAGS specific to my project
# the "-shared" is what creates the .so files
# find your desired configuration with `./Configure LIST`
./Configure linux-mips32 --prefix=/home/myusername/Downloads/openssl-install --openssldir=/system/ssl -fPIC -mhard-float -shared
# run the make file (with my specific compiler)
make CC=mips-linux-gnu-gcc RANLIB=mips-linux-gnu-ranlib LD=mips-linux-gnu-ld MAKEDEPPROG=mips-linux-gnu-gcc PROCESSOR=MIPS