本文主要是介绍Libcurl的编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是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
这篇关于Libcurl的编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!