RedBearLab / nRF51822-Arduino

Moved to https://github.com/redbear/nRF5x
252 stars 109 forks source link

Problem including ArduinoJson library #92

Open kdsoo opened 7 years ago

kdsoo commented 7 years ago

Hi,

I'm having problem building ble-nano code with ArduinoJson library which seems to be a conflict declaration of error_t.

Going through the ble_error.h file, I recognize that this error_t is very important so we cannot rename it but either ArduinoJson. Can anyone give a workaround tip for this crisis? The error I got is like follows:

In file included from /home/kdsoo/.arduino15/packages/RedBear/hardware/nRF51822/1.0.7/cores/RBL_nRF51822/ble-nrf51822-master/source/common/common.h:68:0, from /home/kdsoo/.arduino15/packages/RedBear/hardware/nRF51822/1.0.7/cores/RBL_nRF51822/ble-nrf51822-master/source/btle/btle.h:24, from /home/kdsoo/.arduino15/packages/RedBear/hardware/nRF51822/1.0.7/cores/RBL_nRF51822/ble-nrf51822-master/source/nRF5xn.h:29, from /home/kdsoo/.arduino15/packages/RedBear/hardware/nRF51822/1.0.7/cores/RBL_nRF51822/nRF51822_API.h:10, from /home/kdsoo/.arduino15/packages/RedBear/hardware/nRF51822/1.0.7/cores/RBL_nRF51822/BLE_API.h:33, from /home/kdsoo/GIT/VSN/Arduino/LiFiNode/secondtier/secondtier.ino:3: /home/kdsoo/.arduino15/packages/RedBear/hardware/nRF51822/1.0.7/cores/RBL_nRF51822/ble-nrf51822-master/source/common/ble_error.h:143:2: error: conflicting declaration 'typedef enum error_t error_t' }error_t;

^ In file included from /home/kdsoo/Arduino/libraries/ArduinoJson/include/ArduinoJson/JsonVariant.ipp:17:0, from /home/kdsoo/Arduino/libraries/ArduinoJson/include/ArduinoJson.hpp:20, from /home/kdsoo/Arduino/libraries/ArduinoJson/include/ArduinoJson.h:8, from /home/kdsoo/Arduino/libraries/ArduinoJson/ArduinoJson.h:8, from /home/kdsoo/GIT/VSN/Arduino/LiFiNode/secondtier/secondtier.ino:2: /home/kdsoo/.arduino15/packages/RedBear/tools/arm-none-eabi-gcc/4.8.3-2014q1/arm-none-eabi/include/errno.h:5:13: error: 'error_t' has a previous declaration as 'typedef int error_t' typedef int error_t;

kdsoo commented 7 years ago

Reviewing the code of conflicts, I found that the use of error_t is restricted to nrf51822-master code base. so I deliberately renamed error_t used in your repository. I didn't apply namespace because I find that you are not employing the namespace rule within nrf51822-master. Please review my pull request(#94) and let me know it has a go.