一些依赖库的交叉编译步骤

交叉编译链版本:12.3.0

一、curl-7.43.0库交叉编译

libcurl是一个跨平台的网络协议库,支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, HTTP基本表单上传,代理,cookies,和用户认证。

OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

编译openssl支持libcurl的https访问: http协议是明文传输的,因此很容易被截取和解析,泄漏个人数据。 https协议是在http和tcp之间多添加了一层,进行身份验证和数据加密。

1.1、交叉编译 openssl

openssl编译方法请参见:Linux 基于openssl库的paho.mqtt.c交叉编译_paho.mqtt.c编译 cmake linux-CSDN博客

1.2、交叉编译libcurl

1.2.1、下载libcurl

wget https://github.com/curl/curl/releases/download/curl-7_43_0/curl-7.43.0.tar.bz2

1.2.2、解压libcurl

在你的Linux开发环境下解压libcurl压缩包。

tar -jxvf curl-7.43.0.tar.bz2

1.2.3、配置libcurl编译选项

cd curl-7.43.0
./configure --prefix=$PWD/_install --with-openssl=/home/vmuser/openssl-1.0.2f/_install --host=arm-linux CC=arm-linux-gcc

Note:--with-openssl=[你编译openssl库生成的lib、include、bin 所在的路径]

1.2.4、编译和安装

make && make install

1.2.5、输出文件

编译成功后输出文件如下图所示:

至此,openssl库libcurl库openssl库已经交叉编译结束。 

二、FreeTDS库交叉编译

2.1、安装依赖环境

Linux 环境需要安装有 GNU 版本的 autoconfautomakelibtool 工具。安装命令如下:

Centos环境安装命名:sudo yum install autoconf automake libtool -y

Ubuntu环境安装命令:sudo apt-get install autoconf automake libtool -y

2.2、交叉编译FreeTDS

2.2.1、下载FreeTDS

wget https://www.freetds.org/files/stable/freetds-0.91.112.0.0.tar.gz

更多版本请参见:Index of /files/stable (freetds.org) 

2.2.2、解压FreeTDS

在你的Linux开发环境下解压libcurl压缩包。

tar -jxvf freetds-0.91.112.0.0.tar.bz2

2.2.3、配置FreeTDS编译选项

cd freetds-0.91.112.0.0
./autogen.sh
./configure --prefix=$PWD/_install --host=arm-linux CC=arm-linux-gcc --with-tdsver=7.0 --enable-msdblib

2.2.4、编译和安装

make && make install

2.2.5、输出文件

至此,FreeTDS库已经交叉编译结束。  

2.2.6、参考链接

Linux系统上编译安装FreeTDS库文件_freetds error-CSDN博客

freetype-2.10.1 交叉编译_freetype-2.10.1 编译-CSDN博客

三、tcmalloc库交叉编译

3.1、下载tcmalloc

git clone https://github.com/gperftools/gperftools.git

或直接在githup中下载,网址为:https://github.com/gperftools/gperftools

3.2、解压tcmalloc

在你的Linux开发环境下解压libcurl压缩包。

通过git clone下载的无需解压。
直接在githup网站下载的,解压命令为:unzip gperftools-master.zip

3.3、配置tcmalloc编译选项

cd gperftools-master
./autogen.sh
./configure --prefix=$PWD/_install --host=arm-linux CC=arm-linux-gcc

3.4、编译和安装

make && make install

3.5、输出文件

至此,tcmalloc库已经交叉编译结束。  

四、leveldb库交叉编译

4.1、下载leveldb

wget https://github.com/google/leveldb/archive/v1.20.tar.gz

4.2、解压leveldb

在你的Linux开发环境下解压libcurl压缩包。

tar -zxvf v1.20.tar.bz2

4.3、配置leveldb编译选项

cd leveldb-1.20
export CC=arm-linux-gcc
export CXX=arm-linux-g++
./build_detect_platform build_config.mk ./

4.4、编译

make

4.5、输出文件

动态库存在:out-shared/

静态库存在:out-static/

至此,leveldb库已经交叉编译结束。  

五、libsocketcan库交叉编译

5.1、下载libsocketcan

wget https://public.pengutronix.de/software/libsocketcan/libsocketcan-0.0.9.tar.bz2

更多版本请参见:Index of /software/libsocketcan (pengutronix.de)

5.2、解压libsocketcan

在你的Linux开发环境下解压libcurl压缩包。

tar -jxvf libsocketcan-0.0.9.tar.bz2

5.3、配置libsocketcan编译选项

cd libsocketcan-0.0.9
./autogen.sh
./configure --host=arm-linux --prefix=$PWD/_install

5.4、编译和安装

make && make install

5.5、输出文件

至此,libsocketcan库已经交叉编译结束。  

六、mongoose库交叉编译

6.1、下载mongoose

wget https://github.com/cesanta/mongoose/archive/refs/tags/6.10.tar.gz

更多版本请参见:Releases · cesanta/mongoose (github.com) 

6.2、解压mongoose

在你的Linux开发环境下解压libcurl压缩包。

tar -zxvf mongoose-6.10.tar.gz

6.3、配置mongoose编译选项

cd mongoose-6.10

新建一个Makefile,并填入如下内容:

TARGET=libmongoose.so
SRC=mongoose
ifndef ${CC}
    CC=arm-linux-gcc
endif

${TARGET}:${SRC}.o
    ${CC} ${SRC}.c -fPIC -shared -o ${TARGET}

.PYTHON:clean
clean:
    rm ${SRC}.o ${TARGET}

6.4、编译

make

6.5、输出文件

至此,mongoose库已经交叉编译结束。   

七、sqlite库交叉编译

7.1、下载sqlite

wget https://www.sqlite.org/2014/sqlite-autoconf-3080500.tar.gz

更多版本请参见:SQLite Download Page 

7.2、解压sqlite

在你的Linux开发环境下解压libcurl压缩包。

tar -zxvf sqlite-autoconf-3080500.tar.gz

7.3、配置sqlite编译选项

cd sqlite-autoconf-3080500
./configure CC=arm-linux-gcc --host=arm-linux --prefix=$PWD/_install

7.4、编译和安装

make && make install

7.5、输出文件

至此,sqlite库已经交叉编译结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值