CURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称CURL为下载工具。CURL还包含了用于程序开发的libcurl。
移植环境:
Linux版本:Linux3.5
编译器:arm-linux-gcc
开发板环境:tiny4412-Cortex-A9
CURL版本:7.8.0
要移植CURL库,首先则需要移植libopenssl 库。
OpenSSL 是一个安全套接字层密码库, 囊括主要的密码算法、 常用的密钥和证书封装管理功能及 SSL 协议, 并提供丰富的应用程序供测试或其它目 的使用。
OpenSSL 被曝出现严重安全漏洞后, 发现多数通过 SSL 协议加密的网站使用名为OpenSSL 的开源软件包。 OpenSSL 漏洞不仅影响以 https 开头的网站, 黑客还可利用此漏洞直接对个人电脑发起“心脏出血”( Heartbleed) 攻击。 据分析, Windows 上有大量软件使用了存在漏洞的 OpenSSL 代码库, 可能被黑客攻击抓取用户电脑上的内存数据。
下载链接: http://distfiles.macports.org/openssl/
(1) 将下载的 openssl-1.0.2e.tar.gz 压缩包拷贝至虚拟机解压。
[wbyq@wbyq src_pack]$ tar xvf /mnt/hgfs/ubuntu/software_pack/openssl-1.0.2s.tar.gz
(2) 配置编译安装路径
[wbyq@wbyq openssl-1.0.2s]$ ./config shared no-asm --prefix=$PWD/tmp
--prefix=$PWD/tmp 表示编译安装的路径为当前目 录下的 tmp
(3) 修改顶层 Makefile 文件
[wbyq@wbyq openssl-1.0.2s]$ gedit Makefile +62
CC= arm-linux-gcc
AR= arm-linux-ar $(ARFLAGS) r
RANLIB= arm-linux-ranlib
RC= windres
NM= arm-linux-nm
PERL= /usr/bin/perl
TAR= tar
TARFLAGS= --no-recursion
MAKEDEPPROG= arm-linux-gcc
LIBDIR=lib
(4)编译 make
[wbyq@wbyq openssl-1.0.2s]$ make
making all in crypto...
make[1]: 进入目 录“ /home/wbyq/src_pack/openssl-1.0.2s/crypto”
/usr/bin/perl ../util/mkbuildinf.pl "arm-linux-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC
-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -O3
-Wall" "linux-x86_64" >buildinf.h
arm-linux-gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -O3 -Wall -c -o cversion.o cversion.c
cc1: error: unrecognized command line option "-m64"
< 内置 >: recipe for target 'cversion.o' failed
make[1]: *** [cversion.o] Error 1
make[1]: 离开目 录“ /home/wbyq/src_pack/openssl-1.0.2s/crypto”
Makefile:287: recipe for target 'build_crypto' failed
make: *** [build_crypto] Error 1
编译报错解决:
[wbyq@wbyq openssl-1.0.2s]$ gedit Makefile
(5)重新编译与安装 make && make install
[wbyq@wbyq openssl-1.0.2s]$ make && make install
(6) 编译生成文件
[wbyq@wbyq openssl-1.0.2s]$ cd tmp/
[wbyq@wbyq tmp]$ ls
bin include lib ssl
(7)拷贝 lib 下的 so 文件到开发板 lib 目 录下
[wbyq@wbyq tmp]$ cp ./lib/*.so* /home/wbyq/src_pack/rootfs/lib/ -rfdv
下载地址: https://curl.se/
(1) 将下载的 curl-7.80.0.tar.gz 压缩包拷贝至虚拟机解压
[wbyq@wbyq src_pack]$ tar xvf /mnt/hgfs/ubuntu/software_pack/curl-7.80.0.tar.gz
(2) 配置编译安装路径
[wbyq@wbyq curl-7.80.0]$ CPPFLAGS="-I/home/wbyq/src_pack/openssl-1.0.2s/tmp/
-I/home/wbyq/src_pack/openssl-1.0.2s/tmp/include"
LDFLAGS="-L/home/wbyq/src_pack/openssl-1.0.2s/tmp/lib" LIBS="-ldl" ./configure
--host=arm-linux-gcc CC=arm-linux-gcc CXX=arm-linux-g++ --with-ssl --enable-shared
--enable-static --disable-dict --disable-ftp --disable-imap --disable-ldap --disable-ldaps
--disable-pop3 --disable-proxy --disable-rtsp --disable-smtp --disable-telnet --disable-tftp
--disable-zlib --without-ca-bundle --without-gnutls --without-libidn --without-librtmp
--without-libssh2 --without-nss --without-zlib --prefix=$PWD/_install
指定 openssl-1.0.2s 头文件路径:
CPPFLAGS="-I/home/wbyq/src_pack/openssl-1.0.2s/tmp/ -I/home/wbyq/src_pack/openssl-1.0.2s/tmp/include"
指定 openssl-1.0.2s 库路径:
LDFLAGS="-L/home/wbyq/src_pack/openssl-1.0.2s/tmp/lib"
(3)编译与安装
[wbyq@wbyq curl-7.80.0]$ make && make install
(4)拷贝相关文件到开发板目录下
[wbyq@wbyq curl-7.80.0]$ cd _install/
[wbyq@wbyq _install]$ ls
bin include lib share
[wbyq@wbyq _install]$ cp ./bin/curl /home/wbyq/src_pack/rootfs/bin/
[wbyq@wbyq _install]$ cp lib/*.so* /home/wbyq/src_pack/rootfs/lib -rfdv
(5)开发板下测试 curl 命令
[root@wbyq mt7601u]# curl api.seniverse.com/v3/weather/now.json?key=SwD4-ybQxhe
dD1z7U'&'location=nanchang'&'language=zh-Hans'&'unit=c
{"results":[{"location":{"id":"WT47HJP3HEMP","name":" 南 昌 ","country":"CN","path":" 南 昌 , 南
昌 , 江 西 , 中 国 ","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":" 多 云
","code":"4","temperature":"10"},"last_update":"2021-11-22T09:11:57+08:00"}]}
[root@wbyq
mt7601u]
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !