构建curl
库时出现此错误消息:
libssl.a(s2_clnt.o):针对`.rodata'的重定位R_X86_64_32不能 在制作共享对象时使用;用-fPIC重新编译
我尝试使用-fPIC
开关 - 没有任何帮助。编译之前openssl
库没有任何错误。 make check
也过去了。
信息:我正在针对curl
的其他版本汇编glibc
- ./configure
中$CPPFLAGS
和$LDFLAGS
== {提供了包含路径{1}} [==这是新-L/usr/glibc-2.22/lib
版本]
只有在使用新的glibc
版本进行编译时才会抛出此错误。
答案 0 :(得分:1)
当一个对象使用隐藏符号构建而另一个对象不构建时,会出现此类错误。
由于我看到你试图链接一个.a存档文件,即静态库,我认为静态库是使用不同于你使用curl的隐藏符号选项构建的。
我认为当一个对象使用PIC而另一个对象不使用时,你也可以得到它。要解决这个问题,请使用相同的PIC设置编译静态库和curl。
答案 1 :(得分:0)
以下是我过去几天收集的问题集的解决方案: several make issues...