当前位置: 首页 > news >正文

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

交叉编译链版本: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 -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库已经交叉编译结束。


http://www.mrgr.cn/news/36018.html

相关文章:

  • 什么是PPT,怎么制作?5款办公必备的幻灯片制作软件!
  • 29 C 语言中的随机数实现:rand 与 srand
  • WPS中让两列数据合并的方法
  • Linux·进程概念(上)
  • Springboot使用内置对象HttpServletRequest、HttpServletResponse
  • 了解通用 SQL 语法
  • 初识chatgpt
  • 【FastAPI】使用FastAPI和Redis实现实时通知(SSE)
  • 设计云专业软件集中管控方案
  • 【鸿蒙HarmonyOS NEXT】数据存储之关系型数据库RDS
  • Java(基本数据类型)( ̄︶ ̄)↗
  • 实用的云手机软件有哪些?高性价比云手机推荐
  • 【数组】复习与企业真题
  • YOLOv9改进策略【损失函数篇】| Varifocal Loss,解决密集目标检测器训练中前景和背景类别间极端不平衡的问题
  • JavaScript类型判断(总结)
  • 关于宿主机功能正常docker容器重启后dns失效的解决办法
  • 大语言模型之LlaMA系列- LlaMA 2及LLaMA2_chat(上)
  • android13 系统默认设置静态IP
  • 二叉搜索树(来学包会) C++经验+1
  • GEE 案例:一种在不受云层影响并利用合成口径雷达(SAR)数据的情况下监测植被的方法(双极化SAR植被指数)