在CentOS 5.4上,OpenSSL編譯沒有「共享」選項。但是,當我通過這個選項編譯失敗:使用'shared'選項編譯OpenSSL?
在/ usr/bin中/ LD:libcrypto.a下(x86_64-gcc.o):製作時對`局部符號」搬遷R_X86_64_32不能使用共享對象;使用-fPIC重新編譯
當我嘗試:./config shared CFLAGS=-fPIC
不起作用。
我能做些什麼來讓OpenSSL與'shared'選項一起編譯?
感謝
在CentOS 5.4上,OpenSSL編譯沒有「共享」選項。但是,當我通過這個選項編譯失敗:使用'shared'選項編譯OpenSSL?
在/ usr/bin中/ LD:libcrypto.a下(x86_64-gcc.o):製作時對`局部符號」搬遷R_X86_64_32不能使用共享對象;使用-fPIC重新編譯
當我嘗試:./config shared CFLAGS=-fPIC
不起作用。
我能做些什麼來讓OpenSSL與'shared'選項一起編譯?
感謝
同樣的問題,但通常的Makefile將考慮編譯器或連接選項的環境變量。
因此,如果您在調用配置腳本之前將-fPIC
選項置於之前,則應該照顧它。你可以做到這一點:
CFLAGS=-fPIC ./config shared --prefix=/your/path
或
export CFLAGS=-fPIC
./config shared --prefix=/your/path
它爲我工作。
+1 - 今天在一個完全不同的項目上遇到了這個問題,並且可以很好地證實它的正確性。如果你已經嘗試過在沒有這個正確的命令行的情況下構建它,請記住'make clean'! – ZXcvbnM 2014-07-19 08:05:59
以下是我建的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
你在沒有共享的情況下運行和運行共享之間「乾淨」嗎?這是什麼OpenSSL版本? – NUXI 2010-03-30 03:24:31