已解决
ubuntu16.04 交叉编译 mbedtls
来自网友在路上 141841提问 提问时间:2023-11-12 13:37:15阅读次数: 41
最佳答案 问答题库418位专家为你答疑解惑
在为客户交叉编译项目时需要依赖 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 才能保证正常的交叉编译
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"ubuntu16.04 交叉编译 mbedtls":http://eshow365.cn/6-38110-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 安装纯净版Linux后的必备设置
- 下一篇: 【数据结构】:红黑树