无法使用OpenSSL 1.0.2k构建APR-util 1.5.4

时间:2017-04-04 21:24:48

标签: linux apache gcc openssl apr

我正在尝试为Apache 2.2.32构建APR-util 1.5.6。

我首先使用以下步骤构建OpenSSL 1.0.2k:

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
make
make test
make install

然后我运行了这些命令:

export LD_LIBRARY_PATH=/usr/local/lib
export LIBS=-ldl

我尝试使用以下命令构建APR-util:

./configure --with-apr=/usr/local/apr/bin/apr-1-config --with-crypto --with-openssl=/usr/local/ssl

make

配置成功完成,但make失败并显示以下错误:

/bin/sh /usr/local/apr/build-1/libtool --silent --mode=link gcc  -g -O2 -pthread      -L/usr/local/ssl/lib -release 1 -module -rpath /usr/local/apr/lib/apr-util-1 -o crypto/apr_crypto_openssl.la crypto/apr_crypto_openssl.lo -L/usr/local/ssl/lib  -lssl -lcrypto
/usr/bin/ld: /usr/local/ssl/lib/libcrypto.a(mem.o): relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
/usr/local/ssl/lib/libcrypto.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [crypto/apr_crypto_openssl.la] Error 1

请指教。感谢。

1 个答案:

答案 0 :(得分:1)

  

我首先使用以下步骤构建OpenSSL 1.0.2k:

./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl
make
make test
make install

在此步骤中,您 它最终会导致:

/usr/local/ssl/lib/libcrypto.a(mem.o): relocation R_X86_64_32S

如下配置应清除问题。

共享对象

./config shared --prefix=/usr/local/ssl --openssldir=/usr/local/ssl\

在此配置中,OpenSSL将构建共享对象。它将为您启用-fPIC标记。

没有共享对象

./config -fPIC --prefix=/usr/local/ssl --openssldir=/usr/local/ssl

在此配置中,您不是在构建共享对象。您必须启用-fPIC标志。

您应该考虑其他OpenSSL配置标志,例如no-ssl2no-ssl3no-comp。如果您使用的是64位Intel计算机,则还应使用enable-ec_nistp_64_gcc_128。另请参阅OpenSSL wiki上的Compilation and Installation | Options