Hi,
I tried to build the ble_app_uart example for nRF52820/s140. In my project I need to use C++ modules.
My usual approach that worked so far:
- Take an example project
- Rename the main.c to main.cpp
- Replace line 381-385
ble_gap_phys_t const phys = { .tx_phys = BLE_GAP_PHY_AUTO, .rx_phys = BLE_GAP_PHY_AUTO, }; - Compile with -std=gnu+11.
Oddly this doesn't work with the nRF52820 example and I always get the following error when compiling.
In file included from ../nrf5_sdk/modules/nrfx/mdk/nrf.h:192,
from D:\Development\wDALI2_BT_Switch\wdali-2-bt-button\firmware\ble_app_uart_pca10100e_s140\main.cpp:55:
../nrf5_sdk/modules/nrfx/mdk/compiler_abstraction.h:193:60: error: expected constructor, destructor, or type conversion before '(' token
../nrf5_sdk/modules/nrfx/mdk/compiler_abstraction.h:232:5: note: in expansion of macro 'NRF_STATIC_ASSERT'
../nrf5_sdk/modules/nrfx/mdk/nrf_erratas.h:48:1: note: in expansion of macro 'NRF_MDK_VERSION_ASSERT_AT_LEAST'
When I do the same thing with the ble_app_uart example for nRF52840/s140 it compiles just fine with C++.
Does anyone have an idea how to fix this problem and why it only occurs when compiling for nRF52820?
Thanks in advance.