0

参考网站https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-device-sdk-c-iothubclient我正在用 C++ 编写一个示例 azure iot 代码以在 linux 和 windows 上运行.

当我在 Ubutnu 上运行示例代码时,每当调用 IoTHubClient_LL_DoWork() API 时,都会出现以下错误:

Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/c-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:582 curl_easy_perform() failed: Out of memory

Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/c-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:584 (result = HTTPAPI_OPEN_REQUEST_FAILED)
Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/c-utility/src/httpapiex.c Func:HTTPAPIEX_ExecuteRequest Line:475 unable to recover sending to a working state
Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/iothub_client/src/iothubtransporthttp.c Func:DoEvent Line:1684 unable to HTTPAPIEX_SAS_ExecuteRequest
Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/c-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:582 curl_easy_perform() failed: Out of memory

Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/c-utility/adapters/httpapi_curl.c Func:HTTPAPI_ExecuteRequest Line:584 (result = HTTPAPI_OPEN_REQUEST_FAILED)
Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/c-utility/src/httpapiex.c Func:HTTPAPIEX_ExecuteRequest Line:475 unable to recover sending to a working state
Error: Time:Thu May 10 23:56:23 2018 File:/home/azure/azure-iot-sdk-c/iothub_client/src/iothubtransporthttp.c Func:DoMessages Line:2077 unable to HTTPAPIEX_SAS_ExecuteRequest

这些错误的原因可能是什么以及如何摆脱它们?

4

1 回答 1

0

您是否检查过 Linux 上是否安装了 OpenSSL,或者如果安装了版本是什么?

我发现了一些关于此错误的类似主题,如下所示:

初始化 SSL 和 libcurl 并“内存不足”

通过 https 发布时出现“CURLE_OUT_OF_MEMORY”错误

原因可能是在使用 azure iothub divice 客户端之前未使用 SSL_library_init() 初始化 openSSL 库。虽然我没有搭建开发环境,也没有复现错误,希望对你有帮助。

于 2018-05-11T06:39:07.960 回答