我正在尝试使用Apache支持安装Subversion。我使用apr
标记安装了apr-utils
,neon
,OpenSSL
和--enable-shared
。但是,在尝试安装subversion时出现以下错误:
/usr/bin/ld: /usr0/software/openssl/ossl/lib/libssl.a(s23_clnt.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr0/software/openssl/ossl/lib/libssl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [libserf-0.la] Error 1
make[1]: Leaving directory `/usr0/sources/svn/subversion-1.6.3/serf'
make: *** [external-all] Error 1
在Subversion FAQ中声明如果我收到此错误,我应该使用--enable-shared
标志,它应该可以工作。但是,这没有帮助。关于如何解决这个问题的任何想法?
答案 0 :(得分:5)
我发现问题出在openssl安装上。使用enable-shared重新安装openssl。
答案 1 :(得分:0)
我在其他几个非openssl场景中遇到过这种情况,我发现这通常与没有打开共享库有关。
将--enable-shared
添加到配置行似乎可以修复它。
答案 2 :(得分:0)
我通过在crypto \ cryptolib.h中向OPENSSL_ia32cap_P添加隐藏属性并重新编译来解决它。
extern unsigned int OPENSSL_ia32cap_P[] __attribute__ ((visibility ("hidden")));