繁体   English   中英

为 C 交叉编译 Azure IoT SDK

[英]Cross-compiling Azure IoT SDK for C

我已经成功地交叉编译了 C Azure IoT SDK 用于运行嵌入式 ZEDC38310A5A36D4777 的目标设备。 说明在这里: https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/SDK_cross_compile_example.md

下一步是使用在目标设备上运行的 SDK 获取基本应用程序。

一个 go 会怎么做呢? 生成的库等在哪里复制到目标设备的 sysroot。

似乎只支持 Rasberry Pi 并生成新的固件映像。

我建议您在生成 makefile 时使用 -DCMAKE_INSTALL_PREFIX=[output path]。 运行 cmake 并 make 后,您可以运行 make install ,它将生成的库复制到您选择的位置。 您不想将它们安装到主机的库搜索路径中,因为(可能)它们是为不兼容的体系结构构建的。 完成此操作后,/lib 目录将包含构建应用程序所需的库。 这些是 static 库(除非您另有选择),因此只需将它们链接到您的应用程序。 他们不需要在设备上。 显然,您还需要交叉编译您的应用程序。

不过,您需要注意几件事。 您的设备需要具有与构建 SDK 时使用的相同版本的 OpenSSL 和 curl。 这些是动态库,因此如果您不注意这一点,您的应用程序可能会在运行时失败,因为版本不匹配。

这里还有另一个交叉编译的例子: https://github.com/Azure/azure-iot-sdk-c/blob/master/doc/Docker_SDK_Cross_Compile.md 此版本还构建了必备库,并就如何交叉编译应用程序提供了建议。 它使用 Docker 容器来执行此操作,但是,即使您不想使用 Docker,它仍然可以帮助您完成流程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM