一些依赖库的交叉编译步骤
交叉编译链版本: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 版本的 autoconf、automake、libtool 工具。安装命令如下:
Centos环境安装命名:sudo yum install autoconf automake libtool -yUbuntu环境安装命令: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库已经交叉编译结束。