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 才能保证正常的交叉编译

相关推荐
威桑3 天前
交叉编译过程中的踩坑与收获
linux·c++·arm·交叉编译
特立独行的猫a3 天前
鸿蒙PC三方库编译libiconv链接报错,解决 libtool 链接参数丢失问题过程总结
harmonyos·交叉编译·libiconv·三方库·鸿蒙pc·libtool
特立独行的猫a3 天前
鸿蒙PC命令行及三方库libiconv移植:鸿蒙PC生态的字符编码基石
harmonyos·交叉编译·libiconv·三方库移植·鸿蒙pc
特立独行的猫a4 天前
[鸿蒙PC命令行程序移植实战]:交叉编译移植最新openSSL 4.0.0到鸿蒙PC
华为·harmonyos·移植·openssl·交叉编译·鸿蒙pc
特立独行的猫a4 天前
[鸿蒙PC命令行适配] 移植Aria2文件下载神器最新版到鸿蒙PC的完整教程 (附可运行程序)
harmonyos·移植·交叉编译·aria2·鸿蒙pc
itas1098 天前
Linux交叉编译工具链
linux·运维·服务器·交叉编译·cross-compile
特立独行的猫a12 天前
移植FFmpeg最新 8.1版本到鸿蒙PC(OpenHarmony)平台完整指南
ffmpeg·harmonyos·移植·交叉编译·鸿蒙pc
花花少年13 天前
Ubuntu系统下交叉编译DBus
交叉编译·dbus
花花少年14 天前
Ubuntu系统下交叉编译glib
交叉编译·glib
花花少年15 天前
Ubuntu系统下交叉编译hostapd
交叉编译·hostapd