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

news2024/12/23 23:53:51

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2164531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django学习实战篇六(适合略有基础的新手小白学习)(从0开发项目)

前言: 上一章中,我们完成了页面样式的配置,让之前简陋的页面变得漂亮了些。 整理一下目前已经完成的系统,从界面上看,已经完成了以下页面: 首页分类列表页标签列表页口博文详情页 这离我们的需求还有些距离&#xff0…

哪款手机软件适合记事?记事本软件推荐

在这个信息爆炸的时代,手机已经成为我们生活中不可或缺的一部分。它不仅携带方便,而且功能强大,几乎可以完成我们日常所需的所有任务。随着生活节奏的加快,人们越来越需要一个可靠的工具来帮助自己记录重要信息和工作事项。这时候…

德勤校招网申笔试综合能力测试SHL题库与面试真题攻略

德勤的综合能力测试(General Ability)是其校园招聘在线测评的关键环节,旨在评估应聘者的多项认知能力。以下是对这部分内容的全面整合: 综合能力测试(General Ability) 测试时长为46分钟,包含…

ORA-12560:TNS:协议适配器错误

今天准备在数据库服务器创建一个用户,使用管理员账号进行登录 sqlplus / as sysdba时,突然报了个ORA-12560:TNS:协议适配器错误,吓的我一激灵,不应该啊,之前一直都是正常的,也是在网…

大漠yolo-数据集标注

参考 【按键精灵】大漠插件yolo环境配置_哔哩哔哩_bilibili 1. 2. 3.启动

MySQL高阶1873-计算特殊奖金

目录 题目 准备数据 分析数据 总结 题目 编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 M 开头,那么他的奖金是他工资的 100% ,否则奖金为 0 。 返回的结果按照 employee_id 排序。 准备数据 Crea…

记录踩坑 uniapp 引入百度地图(微信小程序,H5,APP)

前言 因为公司要求一定要用百度地图,网上引入百度地图的方法说的就三种(插件,异步,webview组件),因为我用的是VUE3 第一种方法引入插件(插件名vue-baidu-map)一直报错vue2没试过反正vue3引进去就是报错第二种方法用异步引入 如果只开发app和h5可以用,微信小程序反正不显示,但…

android studio 批量修改包名 app package name

1、批量修改包名:project view模式 我们可以看到,只可以修改myapplication的部分包名,前面的com.demo这个修改了,可以进行如下设置来达到修改demo的目的。 2、设置下,通过不同的目录来达到批量修改的目的:…

2024最新甄选7款超好用的文档加密软件 | 好用的企业文档加密软件大盘点!赶快码住!

在数字化时代,文档如同古代的锦书密函,承载着企业的智慧与机密。 正如古诗所云:"锦书难托云中雁,密语常藏月下窗。" 2024年,我们不仅要传承古人的智慧,更要借助现代科技的力量,守护…

张朝阳的物理课第三卷:量子力学的硬核探索与启发

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【海拥导航】🤟 找工作,来万码优才:👉 #小程序://万码优才/HDQZJEQiCJb9cFi💅 想寻找共同学习交流,摸鱼划水的小伙伴,请点击【全栈技…

使用Prometheus进行系统监控,包括Mysql、Redis,并使用Grafana图形化表示

Prometheus是一个开源的的监控工具,而且还免费。这一次我们用Prometheus来对之前安装的所有服务,包括Mysql、Redis、系统状况等进行监控,并结合Grafana进行图形化展示 Prometheus下载和安装 下载地址(以下所有插件的官方下载地址…

二叉搜索树(来学包会) C++经验+1

目录 什么是二叉搜索树 解二叉搜索树 二叉搜索树的操作 二叉搜索树的插入(三步走) 二叉搜索树的搜索 二叉搜索树的删除 1.删除的节点是叶子节点 2.删除的节点只有一边的子树 3.删除的节点左子树和右子树都有 详细完整代码 什么是二叉搜索树 二…

MT76X8、MT7621、MT7981和QCA9531的GPIO列表

一、 MT76X8 GPIO列表; 二、 MT7621 GPIO列表; 三、MTK7981 GPIO列表; 四、QCA9531 GPIO列表;

CentOS 7 aarch64制作openssh 9.9p1 rpm包 —— 筑梦之路

本篇文章还是基于开源项目openssh-rpms制作。 https://github.com/boypt/openssh-rpms.git 官方发行说明: OpenSSH: Release Notes 1. 修改version.env 2. 下载源码包 openssl网站改版,下载地址和之前不一样了 # 下载openssl1.1.1w源码包cd downlo…

nacos 快速入门

目录 什么是 Nacos Nacos 的主要特点: Dockerfiledocker-compose.yml 快速搭建 nacos 单机 什么是 Nacos Nacos/nɑ:kəʊs/ 是“动态命名和配置服务”的缩写,是一个用于构建云原生应用的易于使用的动态服务发现、配置和服务管理平台。 Nacos 致力于…

【JAVA开源】基于Vue和SpringBoot的图书馆管理系统

本文项目编号 T 044 ,文末自助获取源码 \color{red}{T044,文末自助获取源码} T044,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…

Linux·进程概念(上)

1.操作系统 任何计算机系统都包含一个基本的程序合集,称为操作系统(Operator System)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理) 其他程序(函数库,shell程序) OS的…

知乎知+推广怎么做?投放费用是多少?

知乎以其独特的问答形式不仅吸引了大量高质量的用户群体,也成为了一个不可多得的品牌营销阵地。为了帮助企业更好地利用这一平台进行品牌推广,知乎推出了“知”推广服务,而作为专业的数字营销解决方案提供商,云衔科技更是全面支持…

Linux开发环境配置(上)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

前端文件上传全过程

特别说明:ui框架使用的是蚂蚁的antd 这里主要是学习前端上传接口的传递参数包括前端上传之前对于代码的整理 一、第一步将前端页面画出来 源代码: /** 费用管理 - IT费用管理 - 费用数据上传 */ import { useState } from "react"; import {…