2014-02-14 135 views
0

爲armv5l執行openssl的交叉編譯版本會導致以下錯誤消息。 如何解決這個問題?-fPIC錯誤交叉編譯openssl

Can't modify /usr/local/ssl/lib/libcrypto.so.1.0.0's text section. Use GCC option -fPIC for shared objects, please. 

詳情:

我用下面的交叉編譯: http://uclibc.org/downloads/binaries/0.9.30.1/cross-compiler-armv5l.tar.bz2

我使用comipled爲armv5l的OpenSSL:

export PATH=/home/toff/workspaces/armv5l/cross-compiler-armv5l/bin:$PATH 
export cross=armv5l- 
export CFLAGS=-fPIC 
./Configure linux-generic32 -DL_ENDIAN --openssldir=/lib -fPIC 

make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib" LD="${cross}ld" MAKEDEFPROG="${cross}gcc" PROCESSOR=ARM 

make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib" LD="${cross}ld" MAKEDEFPROG="${cross}gcc" PROCESSOR=ARM INSTALL_PREFIX=/tmp/package-root install 

如果我查找Makefile,-fPIC似乎被配置爲:

CFLAG= -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -fPIC -DTERMIO -O3 -fomit-frame-pointer -Wall 

回答

1

CFLAGCFLAGS不一樣。它應該是CFLAGS

而且,一旦這個問題得到解決,無論你在shell中使用什麼exportCFLAGS都會在makefile中被覆蓋。

+0

好的,謝謝。所以出口CFLAGS = -fPIC是無用的。但仍然通過./Configure -fPIC在Makefile中定義CFLAG(請參閱最後一個引用)。要麼 ? –

+0

你只是做了一遍。你甚至讀過我的回答嗎? –