我正在尝试在 Ubuntu 14.04 上从源代码编译/安装 OpenLDAP,./configure 运行顺利,make 也运行顺利,但是当我执行 amake install 时出现此问题:
/usr/bin/ld: /usr/lib/libssl.a(s23_meth.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/lib/libssl.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
libtool: install: error: relink `libldap.la' with the above command before installing it
make[2]: *** [install-local] Error 1
make[2]: Leaving directory `/home/user/Downloads/openldap-2.4.40/libraries/libldap'
make[1]: *** [install-common] Error 1
make[1]: Leaving directory `/home/user/Downloads/openldap-2.4.40/libraries'
make: *** [install-common] Error 1
上面确实提到了使用-fPIC
它来进行编译,如下所示:
CFLAGS=-fPIC
CXXFlAGS=-fPIC
CPPGLAGS=-fPIC
所以我不认为这是问题,我认为这更多地与重新链接问题或错误值错误有关。
有什么想法我可以让它工作吗?
答案1
我能够使用以下方法修复它:
-D_GNU_SOURCE
与 CFLAGS 和 CPPFLAGS 的 -fPIC 一起使用