1
votes

ne compile pas le code avec Inclure AzureIoThub.h sur l'appareil esp8266

J'essaie de connecter mon appareil esp8266 au hub azure IOT, et d'après ce que je comprends, la voie à suivre est d'utiliser la bibliothèque officielle AzureIoThub (telle que distribuée sur le gestionnaire de bibliothèque) mais pourquoi aucun code avec cette bibliothèque incluse ne le fait compilez.

J'obtiens les erreurs suivantes en incluant la bibliothèque.

Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

Build options changed, rebuilding all
In file included from C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/azure_c_shared_utility/constbuffer.h:16:0,

                 from C:\Users\uriya\Documents\Arduino\libraries\AzureIoTHub\src\internal/iothub_client_private.h:9,

                 from C:\Users\uriya\Documents\Arduino\libraries\AzureIoTHub\src\iothub_client_ll_uploadtoblob.c:20:

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/umock_c_prod.h:114:30: error: pasting "MOCKABLE_" and "/*this creates a new constbuffer from a memory area*/" does not give a valid preprocessing token

 #define EXPAND_PROD_ENTRY(A) MOCKABLE_##A

                              ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/azure_macro_utils/macro_utils.h:9069:1: note: in expansion of macro 'EXPAND_PROD_ENTRY'

 X(P1) \

 ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/azure_macro_utils/macro_utils.h:8585:21: note: in expansion of macro 'MU_FOR_EACH_1_9'

 #define MU_C2_(x,y) x##y

                     ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/umock_c_prod.h:119:5: note: in expansion of macro 'MU_FOR_EACH_1'

     MU_FOR_EACH_1(EXPAND_PROD_ENTRY, __VA_ARGS__)

     ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/azure_c_shared_utility/constbuffer.h:35:1: note: in expansion of macro 'MOCKABLE_INTERFACE'

 MOCKABLE_INTERFACE(constbuffer,

 ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/umock_c_prod.h:114:30: error: pasting "MOCKABLE_" and "/*this creates a new constbuffer from an existing BUFFER_HANDLE*/" does not give a valid preprocessing token

 #define EXPAND_PROD_ENTRY(A) MOCKABLE_##A

                              ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/azure_macro_utils/macro_utils.h:9073:1: note: in expansion of macro 'EXPAND_PROD_ENTRY'

 X(P1) \

 ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/azure_macro_utils/macro_utils.h:9070:1: note: in expansion of macro 'MU_FOR_EACH_1_8'

 MU_FOR_EACH_1_8(X, P2, P3, P4, P5, P6, P7, P8, P9)

 ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/azure_macro_utils/macro_utils.h:8585:21: note: in expansion of macro 'MU_FOR_EACH_1_9'

 #define MU_C2_(x,y) x##y

                     ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/umock_c/umock_c_prod.h:119:5: note: in expansion of macro 'MU_FOR_EACH_1'

     MU_FOR_EACH_1(EXPAND_PROD_ENTRY, __VA_ARGS__)

     ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTUtility\src/azure_c_shared_utility/constbuffer.h:35:1: note: in expansion of macro 'MOCKABLE_INTERFACE'

 MOCKABLE_INTERFACE(constbuffer,

 ^

C:\Users\uriya\Documents\Arduino\libraries\AzureIoTHub\src\iothub_client_ll_uploadtoblob.c:26:27: fatal error: internal/blob.h: No such file or directory

 #include "internal/blob.h"

                           ^

compilation terminated.

exit status 1
Error compiling for board Generic ESP8266 Module.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Toute suggestion ou commentaire m'aiderait énormément


0 commentaires

4 Réponses :


0
votes

0 commentaires

0
votes

Vous rencontrez peut-être le problème similaire suivant: https://github.com/arduino/Arduino/issues/7930

qui s'est avéré être un constructeur arduino qui a été corrigé avec: https://github.com/arduino/arduino-builder/pull/285


0 commentaires

1
votes

Ce message peut être la solution.

Modifiez essentiellement . \ Arduino15 \ packages \ esp8266 \ hardware \ esp8266 \ 2.6.3 \ platform.txt de sorte qu'il ait la ligne suivante:

build.extra_flags=-DESP8266 -DDONT_USE_UPLOADTOBLOB -DUSE_BALTIMORE_CERT


0 commentaires

0
votes

Il y a un indice important dans le fichier platform.txt dans la ligne précédant build.extra_flags = :
# Cela peut être remplacé dans boards.txt

En utilisant une carte 8266 générique, j'ai dû modifier le build.extra_flag dans le fichier boards.txt comme suit pour obtenir les exemples Azure compilés:

generic.menu.CrystalFreq.40.build.extra_flags=-DF_CRYSTAL=40000000 -DESP8266 -DDONT_USE_UPLOADTOBLOB -DUSE_BALTIMORE_CERT


0 commentaires