预置条件
编译curl之前要先编译openssl,并且需要将openssl安装到编译的机器上
配置
如./configure CPPFLAGS=-fPIC --without-zlib --disable-ldap --disable-ldaps --without-nss --with-ssl=/usr/local/ssl_arm --enable-ipv6 CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ --host=arm-none-linux
- CPPFLAGS=-fPIC 如果要使用curl的静态库来编译动态库,则必须添加-fPIC这个选项,而且一定是CPPFLAGS,之前自己一直认为是CXXFLAGS。。。入坑了
- –with-ssl ssl的安装路径,openssl一定要安装才可编译curl
- –host=arm-none-linux 编译出的库要在什么架构上使用,Config.sub文件中记录有所有架构信息。有时候不添加此选项,会编译不出动态库,即要编译动态库,必须添加此字段
- 申威–build=alpha --host=alpha-none-linux
问题解决
第一次编译完使用libcurl.a编译自己使用的动态库时,遇到了下面的问题:
unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stdin@@GLIBC_2.17’
解决方案:编译curl时添加PPFLAGS=-fPIC