如何剪切(azure_iot_sdk_c)以便于移植到嵌入式Linux平台

uxhixvfz  于 2022-12-17  发布在  Linux
关注(0)|答案(1)|浏览(149)

我已经在Linux上成功编译了(azure_iot_sdk_c),并且成功运行了这个demo(iothub_ll_c2d_sample),现在我想提取与这个demo相关的源代码,方便迁移到嵌入式Linux平台,怎么办?微软提供的源代码中包含了很多与Linux平台无关的代码,以便兼容更多平台。
我试着把sdk里面的源代码拿出来,删除其他平台的代码,通过文件名判断平台是否相关,但是编译不出来,我想知道这个demo(iothub_ll_c2d_sample)正常运行需要哪些文件,我想把它们拿出来单独编译,这样就可以移植到嵌入式Linux平台上了。

mnemlml8

mnemlml81#

您可以提取代码示例文件,并通过导入iothub_ll_c2d_sample. c中代码所需的头文件来独立编译它
尽管代码只列出了六个外部引用文件,但一些头文件具有内部依赖关系。通过反向跟踪,我发现了十八个被它们引用的头文件。您必须提供对所有这些文件的本地引用才能使代码成功编译。请找到下图,其中引用了程序需要编译的所有头文件。

您可以从以下URL获取头文件

  1. https://github.com/Azure/azure-c-shared-utility/blob/master/inc/azure_c_shared_utility/map.h
  2. https://github.com/Azure/azure-iot-arduino-utility/blob/master/src/azure_c_shared_utility/azure_macro_utils/macro_utils.h
  3. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothub_device_client_ll.h
  4. https://github.com/Azure/azure-iot-arduino-utility/blob/master/src/azure_c_shared_utility/azure_macro_utils/macro_utils_generated.h
  5. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothub.h
  6. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothub_transport_ll.h
  7. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothub_client_core_ll.h
  8. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothub_client_core_common.h
  9. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothub_message.h
  10. https://github.com/Azure/azure-c-shared-utility/blob/master/inc/azure_c_shared_utility/strings.h
  11. https://github.com/Azure/azure-c-shared-utility/blob/master/inc/azure_c_shared_utility/const_defines.h
  12. https://github.com/Azure/azure-c-shared-utility/blob/master/inc/azure_c_shared_utility/strings_types.h
  13. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothubtransportmqtt.h
  14. https://github.com/Azure/azure-c-shared-utility/blob/master/inc/azure_c_shared_utility/shared_util_options.h
  15. https://github.com/Azure/azure-c-shared-utility/blob/master/inc/azure_c_shared_utility/crt_abstractions.h
  16. https://github.com/Azure/azure-c-shared-utility/blob/master/inc/azure_c_shared_utility/threadapi.h
  17. https://github.com/Azure/umock-c/blob/master/inc/umock_c/umock_c_prod.h
  18. https://github.com/Azure/azure-iot-sdk-c/blob/main/iothub_client/inc/iothub_client_options.h
    注意,由于这些文件位于同一目录下,所以在程序中引用头文件时不再需要提供相对路径,可以直接访问它们,如下所示

头文件也是一样。我可以直接引用依赖的头文件而不提供任何相对路径。请找到下面的iothub. h头文件的图像,它引用了umock_c_product. h文件,注意没有相对路径。

如果决定将头文件放在其他目录下,请确保为要编译的代码提供相对路径。

相关问题