2011-09-05 144 views
1

我編的libssl使用的libssl靜態庫編譯問題

CC="gcc34 -fPIC" CXX="g++34 -fPIC" CFLAGS="-m64 -fPIC" ./config --prefix=/workspace/libs/gcc34/64/ssl shared && make clean && make && make install 

但是當我嘗試這種靜態生成的庫與我的動態鏈接庫 我越來越

relocation R_X86_64_PC32 against `OPENSSL_cpuid_setup' can not be used when making a shared object; recompile with -fPIC 

我給了子卡選項有哪些錯誤?

+0

我很懷疑,你必須建立一個很好的包裝庫時覆蓋任何編譯器標誌。您是否嘗試過使用'./configure'加'make'? –

+0

試過了同樣的錯誤 –

+0

@Kerrek SB我想要編譯的libssl靜態庫與-fpic選項 –

回答

2

這個工作對我來說,的OpenSSL 1.0.1c

./config -fPIC 
make 
make install 
+0

這爲我工作比以前的答案..謝謝 –

0

最後,我想,我找到了解決辦法: 這種「對未定義的符號R_X86_64_PC32不能在製作共享對象時使用;使用-fPIC重新編譯「會在LDFLAGS設置爲硬化且CFLAGS未設置時發生。 你的情況你不應該設置CFLAGS我猜。

參考:https://bugzilla.redhat.com/show_bug.cgi?id=1304277