交叉编译 微软物联网SDK (azure-iot-sdk-c)

43 篇文章 0 订阅

因工作需要移植微软的物联网SDK,通过文档交叉编译出了sdk库,在此记录下编译方法.

1. 先下载 SDK (azure-iot-sdk-c: https://github.com/Azure/azure-iot-sdk-c/tree/2018-09-11),有一点要提示下,我在下载SDK时最开始选择的是 DownLoad ZIP,这样下载下来的SDK不完整有很多依赖的文件夹内容都下载不下来,后面安装了git工具才拿到完整的代码(git clone -b <yyyy-mm-dd> --recursive https://github.com/Azure/azure-iot-sdk-c.git) https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/devbox_setup.md#linux

 

2. 编译前的准备,交叉编译azure-iot-sdk-c需要用到 curl库和openssl库和uuid库,在网上下载源码交叉编译好,由于这几个库我做项目经常用到所以我统一放在一个公共目录里面方便使用

3. 需要的库准备好后就要根据文档来进行编译了。这里面用的是cmake,我电脑上装的有现成的,没有的自行安装,运行cmake指令前,需要添加一些配置,指定用什么编译器,库的目录等等,创建一个配置文件 toolchain-rpi.cmake 内容如下

INCLUDE(CMakeForceCompiler)

SET(CMAKE_SYSTEM_NAME Linux)     # this one is important
SET(CMAKE_SYSTEM_VERSION 1)     # this one not so much

# this is the location of the amd64 toolchain targeting the Raspberry Pi
#SET(CMAKE_C_COMPILER $ENV{RPI_ROOT}/../bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_C_COMPILER /opt/hisi-linux/x86-arm/arm-hisiv600-linux/target/bin/arm-hisiv600-linux-gcc)


# this is the file system root of the target
#SET(CMAKE_FIND_ROOT_PATH $ENV{RPI_ROOT}) 
SET(CMAKE_FIND_ROOT_PATH /test/azure-iot-sdk-c/DEMO)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

参考文档: https://github.com/Azure/azure-iot-sdk-c/blob/2018-09-11/doc/SDK_cross_compile_example.md

放入

最后在当前目前下执行 指令  ./build.sh --toolchain-file toolchain-rpi.cmake  --provisioning -cl -L/test/azure-iot-sdk-c/DEMO/lib

最终结果:

生成的库在

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿木小呆呆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值