什么是curl
curl是常用来请求web服务器的工具,名字意思是客户端(Client)的URL工具。支持HTTP、HTTPS、rtsp等协议。

curl的作用
在我们的项目中curl主要用在两方面:

云升级,将云服务器上的软件包使用curl的API将软件包下载到本地。
测试HTTP API协议,使用方法见下一篇。

交叉编译方法
编译openssl
Libcurl依赖openssl,通常需要先编译openssl再编译Libcurl。由于我们项目中已经有openssl,且不知道版本,故用在已有项目中时省略该步骤,编译时需要指定已有项目中的CPPFLAGS、LDFLAGS。

cd openssl-*.*.*

make clean

./config no-asm shared --cross-compile-prefix=arm-ca9-linux-gnueabihf- --prefix=$PWD/build/98525

./config no-asm shared --cross-compile-prefix=arm-ca9-linux-uclibcgnueabihf- --prefix=$PWD/build/98566

./config no-shared -no-tests no-asm --cross-compile-prefix=arm-ca9-linux-gnueabihf- --prefix=$PWD/build/98525

//先删除makefile中的两处-m64,否则编译报错
//aarch64不认识-m64选项,将Makefile中含有-m64的几行注释

make make install

编译Libcurl
1、进入目录并清理工程

cd curl-*.*.*

make clean

2、配置编译选项

前面已经说了,由于我们项目中已有openssl,为了做到能集成到设备中,需要使用CPPFLAGS指定openssl头文件路径,使用LDFLAGS指定openssl库路径,这里以我本地代码路径为例:

编译98525平台配置参数:

CPPFLAGS+="-I/BaseWidget" LDFLAGS+="-L/common" ./configure --without-zlib --with-ssl --disable-imap --disable-ldap --disable-ldaps --disable-pop3 --disable-proxy --disable-rtsp --disable-smtp --disable-telnet --disable-ftp --disable-tftp --host=arm CC=arm-ca9-linux-gnueabihf-gcc --prefix=$PWD/build/98525

编译98566平台配置参数:

CPPFLAGS+="-I/BaseWidget" LDFLAGS+="-L/common" ./configure --without-zlib --with-ssl --disable-imap --disable-ldap --disable-ldaps --disable-pop3 --disable-proxy --disable-rtsp --disable-smtp --disable-telnet --disable-ftp --disable-tftp --host=arm CC=arm-ca9-linux-uclibcgnueabihf-gcc --prefix=$PWD/build/98566

编译98530平台配置参数:

CPPFLAGS+="-I/BaseWidget" LDFLAGS+="-L/98530" 
./configure --disable-option-checking --disable-silent-rules  --disable-ares --disable-ech --disable-dependency-tracking --without-zlib --disable-imap --disable-ldap --disable-ldaps --disable-pop3 --disable-proxy --disable-rtsp --disable-smtp --disable-telnet --disable-ftp --disable-tftp --disable-ftp --disable-file --disable-ldaps --disable-proxy --disable-ldap --disable-dict --disable-telnet --disable-tftp --disable-pop3 --disable-openssl-auto-load-config --without-ssl  --host=arm CC=aarch64-ca53-linux-gnu-gcc --prefix=$PWD/build/98530

上面的配置我做了裁剪,参数说明可以使用./configure --help查看,只保留我们需要的模块就好,这样可用节省空间。

3、编译
make && make install

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐