-fPIC错误交叉编译openssl

时间:2014-02-14 14:26:37

标签: c++ openssl arm cross-compiling

为armv5l执行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

我使用:

为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 个答案:

答案 0 :(得分:1)

CFLAGCFLAGS不同。它应该是CFLAGS

而且,一旦修复了,无论你从shell export得到什么,CFLAGS都会在makefile中被覆盖。