目标系统为arm-linux

安装交叉编译工具链

  1. sudo apt-get install -y gcc-arm-linux-gnueabihf

以如下命令和输出确认交叉编译工具链已安装好

  1. arm-linux-gnueabihf-gcc --version
  2. arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
  3. Copyright (C) 2015 Free Software Foundation, Inc.

创建平台配置文件

  1. vim tools/board/config.arm-linux.demo
  2. CONFIG_ENV_CFLAGS = \
  3. -D_PLATFORM_IS_LINUX_ \
  4. -Wall \
  5. -DNO_EXECUTABLES \
  6. CONFIG_ENV_LDFLAGS = \
  7. -lpthread -lrt \
  8. OVERRIDE_CC = arm-linux-gnueabihf-gcc
  9. OVERRIDE_AR = arm-linux-gnueabihf-ar
  10. OVERRIDE_LD = arm-linux-gnueabihf-ld
  11. CONFIG_wrappers :=

或者写成

  1. CONFIG_ENV_CFLAGS = \
  2. -D_PLATFORM_IS_LINUX_ \
  3. -Wall \
  4. -DNO_EXECUTABLES \
  5. CONFIG_ENV_LDFLAGS = \
  6. -lpthread -lrt \
  7. CROSS_PREFIX := arm-linux-gnueabihf-
  8. CONFIG_wrappers :=

选择平台配置

  1. make reconfig
  2. SELECT A CONFIGURATION:
  3. 1) config.alios.mk3080
  4. 2) config.arm-linux.demo
  5. 3) config.ubuntu.x86
  6. #? 2
  7. SELECTED CONFIGURATION:
  8. VENDOR : arm-linux
  9. MODEL : demo

编译

  1. make

获取二进制库

  1. cd output/release/lib
  2. ls

其中有两个主要产物, 它们都是arm-linux架构的:

产物文件名 说明
libiot_sdk.a SDK的主库, 提供了 IOT_XXX 接口和 linkkit_xxx() 接口
libiot_tls.a 裁剪过的 mbedtls, 提供了 mbedtls_xxx() 接口, 支撑 libiot_hal.a