CURL是一個(gè)利用URL語(yǔ)法在命令行下工作的文件傳輸工具,1997年首次發(fā)行。它支持文件上傳和下載,所以是綜合傳輸工具,但按傳統(tǒng),習(xí)慣稱(chēng)CURL為下載工具。CURL還包含了用于程序開(kāi)發(fā)的libcurl。
移植環(huán)境:
Linux版本:Linux3.5
編譯器:arm-linux-gcc
開(kāi)發(fā)板環(huán)境:tiny4412-Cortex-A9
CURL版本:7.8.0
1.編譯與安裝 libopenssl 庫(kù)
要移植CURL庫(kù),首先則需要移植libopenssl 庫(kù)。
OpenSSL 是一個(gè)安全套接字層密碼庫(kù), 囊括主要的密碼算法、 常用的密鑰和證書(shū)封裝管理功能及 SSL 協(xié)議, 并提供豐富的應(yīng)用程序供測(cè)試或其它目 的使用。
OpenSSL 被曝出現(xiàn)嚴(yán)重安全漏洞后, 發(fā)現(xiàn)多數(shù)通過(guò) SSL 協(xié)議加密的網(wǎng)站使用名為OpenSSL 的開(kāi)源軟件包。 OpenSSL 漏洞不僅影響以 https 開(kāi)頭的網(wǎng)站, 黑客還可利用此漏洞直接對(duì)個(gè)人電腦發(fā)起“心臟出血”( Heartbleed) 攻擊。 據(jù)分析, Windows 上有大量軟件使用了存在漏洞的 OpenSSL 代碼庫(kù), 可能被黑客攻擊抓取用戶(hù)電腦上的內(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]: 離開(kāi)目 錄“ /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 文件到開(kāi)發(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 庫(kù)路徑:
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)文件到開(kāi)發(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)開(kāi)發(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文章
17瀏覽量
8315 -
OpenSSL
+關(guān)注
關(guān)注
0文章
21瀏覽量
8893
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【代碼】tiny4412裸機(jī)Demo
免費(fèi)試用“Tiny4412開(kāi)發(fā)板——友善之臂Cortex-A9”
500w像素CMOS高清攝像頭模塊,支持NanoPi2,Tiny4412
【Nanopi2試用體驗(yàn)】Matrix的安裝與嘗試
友善之臂Ubuntu使用手冊(cè)
4412燒Android時(shí)不能啟動(dòng),停在A(yíng)NDROID界面
請(qǐng)問(wèn)在4412的USB驅(qū)動(dòng)程序里該如何修改?
Tiny4412-Uboot啟動(dòng)后無(wú)法加載uImage
TINY4412 UART程序設(shè)計(jì)得相關(guān)資料分享
如何實(shí)現(xiàn)Tiny4412通過(guò)NRF24L01 2.4G無(wú)線(xiàn)模塊發(fā)送數(shù)據(jù)呢
iny4412嵌入式Linux操作系統(tǒng)啟動(dòng)流程是怎樣的
嵌入式實(shí)驗(yàn): TINY4412 UART 程序設(shè)計(jì)

評(píng)論