mbedtls 交叉编译

记录一下 mbedtls 在PC上编译及交叉编译情况,这个是编译 bctoolbox 的依赖库。


一、下载

这里使用的是 mbedtls-2.7 版本。
https://github.com/Mbed-TLS/mbedtls
下载:
git clone https://github.com/Mbed-TLS/mbedtls.git
切换分支:
git checkout archive/mbedtls-2.7

二、Ubuntu编译

1、安装依赖包

2、编译及安装
(1)不编译应用和测试

因为只需要编译出库和头文件,所以可以修改一下根目录的CMakeLists.txt文件。

option(ENABLE_PROGRAMS "Build mbed TLS programs." ON)
改为
option(ENABLE_PROGRAMS "Build mbed TLS programs." OFF)
(2)编译安装

这里打算将编译出来的库放在上级目录下的target_pc目录。
在克隆下来的工程根目录创建文件夹build_dir,并且在里面创建编译脚本。
build.sh:

#!/bin/sh

#编译工具
COMPILER_CC=gcc
#编译选项
COMPILER_FLAGS="-fPIC"
#安装位置
COMPILER_PREFIX=$(pwd)/../../target_pc

#依赖库位置
COMPILER_LIB=$(pwd)/../../target_pc

cmake -DCMAKE_INSTALL_PREFIX=$COMPILER_PREFIX \
      -DCMAKE_C_COMPILER=$COMPILER_CC \
      -DCMAKE_C_FLAGS="$COMPILER_FLAGS" \
      ..

make
make install

在脚本里面制定了编译安装的指定目录,所使用的gcc。
注意要添加编译选项 -fPIC,否则在编译 bctoolbox 时会出问题。

执行。

3、编译结果

会生成头文件和静态库。
在这里插入图片描述

三、交叉编译

1、安装依赖包

交叉编译主要的点在于要配置交叉编译工具(gcc)以及指定编译平台的依赖库(sysroot)。

2、编译及安装

这里打算将编译出来的库放在上级目录下的target_cross目录。
在克隆下来的工程根目录创建文件夹build_dir,并且在里面创建编译脚本。
build.sh:

#!/bin/sh

#编译工具路径
QL_CROSSTOOLS=/opt/ql_crosstools/ql-ag550qcn-le20-gcc820-v1-toolchain/gcc/usr/bin/arm-oe-linux-gnueabi

#SYSROOT路径
QL_SYSROOT=/home/hrx/work/ql-sysroots

#编译工具
COMPILER_CC=$QL_CROSSTOOLS/arm-oe-linux-gnueabi-gcc
#编译选项
COMPILER_FLAGS="-march=armv7-a -marm -mfpu=neon -mfloat-abi=hard -fPIC"

#安装位置
COMPILER_PREFIX=$(pwd)/../../target_cross

#依赖库位置
COMPILER_LIB=$(pwd)/../../target_cross

cmake -DCMAKE_SYSTEM_NAME=Linux \
      -DCMAKE_INSTALL_PREFIX=$COMPILER_PREFIX \
      -DCMAKE_C_COMPILER=$COMPILER_CC \
      -DCMAKE_C_FLAGS="$COMPILER_FLAGS" \
      -DCMAKE_SYSROOT=$QL_SYSROOT \
      -DCMAKE_PREFIX_PATH="$COMPILER_LIB" \
      ..

make
make install
3、编译结果

会生成头文件和静态库。
在这里插入图片描述


广告插入:
下面是一个领外卖券、打车券的公众号,如果恰有需要可以关注一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hrx-@@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值