CURL是一個(gè)利用URL語法在命令行下工作的文件傳輸工具,1997年首次發(fā)行。它支持文件上傳和下載,所以是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱CURL為下載工具。CURL還包含了用于程序開發(fā)的libcurl。
移植環(huán)境:
Linux版本:Linux3.5
編譯器:arm-linux-gcc
開發(fā)板環(huán)境:tiny4412-Cortex-A9
CURL版本:7.8.0
1.編譯與安裝 libopenssl 庫
要移植CURL庫,首先則需要移植libopenssl 庫。
OpenSSL 是一個(gè)安全套接字層密碼庫, 囊括主要的密碼算法、 常用的密鑰和證書封裝管理功能及 SSL 協(xié)議, 并提供豐富的應(yīng)用程序供測(cè)試或其它目 的使用。
OpenSSL 被曝出現(xiàn)嚴(yán)重安全漏洞后, 發(fā)現(xiàn)多數(shù)通過 SSL 協(xié)議加密的網(wǎng)站使用名為OpenSSL 的開源軟件包。 OpenSSL 漏洞不僅影響以 https 開頭的網(wǎng)站, 黑客還可利用此漏洞直接對(duì)個(gè)人電腦發(fā)起“心臟出血”( Heartbleed) 攻擊。 據(jù)分析, Windows 上有大量軟件使用了存在漏洞的 OpenSSL 代碼庫, 可能被黑客攻擊抓取用戶電腦上的內(nèi)存數(shù)據(jù)。
下載鏈接: http://distfiles.macports.org/openssl/
(1) 將下載的 openssl-1.0.2e.tar.gz 壓縮包拷貝至虛擬機(jī)解壓。
[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 表示編譯安裝的路徑為當(dāng)前目 錄下的 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]: 進(jìn)入目 錄“ /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
編譯報(bào)錯(cuò)解決:
[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 文件到開發(fā)板 lib 目 錄下
[wbyq@wbyq tmp]$ cp ./lib/*.so* /home/wbyq/src_pack/rootfs/lib/ -rfdv
2.安裝 curl 工具
下載地址: https://curl.se/
(1) 將下載的 curl-7.80.0.tar.gz 壓縮包拷貝至虛擬機(jī)解壓
[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)拷貝相關(guān)文件到開發(fā)板目錄下
[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)開發(fā)板下測(cè)試 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":" 南 昌 , 南
昌 , 江 西 , 中 國(guó) ","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]
審核編輯 黃宇
-
Curl
+關(guān)注
關(guān)注
0文章
15瀏覽量
8177 -
OpenSSL
+關(guān)注
關(guān)注
0文章
21瀏覽量
8682
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論