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

ubuntu16.04 交叉编译 mbedtls

在为客户交叉编译项目时需要依赖 mbedtls, 客户的机器是 arm64 的 ubuntu 16.04, 交叉编译过程中遇到几个问题。

首先, mbedtls 需要依赖 python, 在 cmake 的过程中, 如果不是使用系统默认的 cmake 可能会导致,mbedtls 在执行 cmake 的过程中选择与预期不符的 python 版本,导致安装的 jinja2 和 jsonschema 在以安装的情况下仍然找不到

另外一个问题是, ubuntu 16.04 上默认的版本是 python 3.5 ,而这个版本是不支持 jsonschema 的,所以需要安装 python 3.6。

首先安装交叉编译工具链

$ apt-get update
$ apt-get install gcc-aarch64-linux-gnu

安装 python 3.6

$ cd /opt
$ wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
$ tar -xvf Python-3.6.3.tgz
$ cd Python-3.6.3
$ ./configure
$ make 
$ make install

检查 python3.6 是否安装成功

$ python3.6 -V
Python 3.6.3

安装 jinja2 和 jsonschema, 此处注意需要使用 pip3.6 安装

pip3.6 install jsonschema
pip3.6 install jinja2

mbedtls 交叉编译

$ git clone https://github.com/Mbed-TLS/mbedtls.git && cd mbedtls &&  git checkout tags/v3.3.0
$ mkdir build && cd build
$ cmake  -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc  -DENABLE_TESTING=OFF -DCMAKE_INSTALL_PREFIX=/opt/  ..
$ make && make install

note: cmake 执行的过程中需要关注下找到的 python 的版本,需要是 3.6 才能保证正常的交叉编译

http://www.lryc.cn/news/225300.html

相关文章:

  • 基于遗传算法优化的直流电机PID控制器设计
  • 大数据-之LibrA数据库系统告警处理(ALM-12036 license文件即将过期)
  • 关于Android Studio中开发Flutter配置
  • 大容量疯了!居然想把磁带放到硬盘,100TB+是否可以实现?
  • C++之map的介绍
  • 非常好用的组件库【semi.design】
  • Semantic-Guided Zero-Shot Learning for Low-Light ImageVideo Enhancement
  • 分享Python的十大库,这你一定得知道!
  • react: hooks
  • Flink(二)【Flink 部署模式】
  • 在使用ubuntu18.04的时候使用阿里源或者清华源后安装mysql5.7时出现dpkg提示的错误信息
  • 引用(类名后加符号)和指针的区别
  • 如何查看网站的https的数字证书
  • 关于maven读取settings.xml文件的优先级问题
  • 城市内涝积水监测,万宾科技内涝预警监测系统
  • JavaEE初阶学习:Linux 基本使用和 web 程序部署
  • 摔杯算法(要求用最少的测试次数找出恰巧会使杯子破碎的楼层。)
  • centos7安装docker容器
  • 【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例
  • 防火防盗防小人 使用 Jasypt 库来加密配置文件
  • Spring Cloud学习(二)【Eureka注册中心】
  • 数据分析实战 | 线性回归——女性身高与体重数据分析
  • python回文日期 并输出下一个ABABBABA型回文日期
  • Zotero拓展功能之Zotero Style
  • 小程序提交表单之后,清除表单form
  • Java程序设计实验5 | Java API应用
  • 自媒体项目详述
  • 客服呼叫中心的语音质检工作
  • 深度解密 | 灵脉SAST 3.0最新特性曝光
  • NowCode JZ39 数组中出现次数超过一半的数字 简单