Hi,
I’m trying to add ESP32 native BLE library support for my library:
But, after downloading of native library target with ArduinoBLE will not compile:
In file included from .pio/libdeps/esp32dev/ArduinoBLE/src/BLECharacteristic.h:25,
from .pio/libdeps/esp32dev/ArduinoBLE/src/BLEService.h:23,
from .pio/libdeps/esp32dev/ArduinoBLE/src/BLEAdvertisingData.h:25,
from .pio/libdeps/esp32dev/ArduinoBLE/src/local/BLELocalDevice.h:25,
from .pio/libdeps/esp32dev/ArduinoBLE/src/ArduinoBLE.h:23,
from src/ArduinoBleOtaClass.h:6,
from src/ArduinoBleOTA.h:9,
from /home/tsiselsk/Projects/private/ArduinoBleOTA/examples/full/main.ino:1:
.pio/libdeps/esp32dev/ArduinoBLE/src/BLEDescriptor.h:28:7: error: redefinition of 'class BLEDescriptor'
class BLEDescriptor {
^~~~~~~~~~~~~
In file included from /home/tsiselsk/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src/BLECharacteristic.h:17,
from /home/tsiselsk/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src/BLEServer.h:20,
from /home/tsiselsk/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src/BLEDevice.h:18,
from .pio/libdeps/esp32dev/ArduinoBLE/src/local/BLELocalDevice.h:23,
from .pio/libdeps/esp32dev/ArduinoBLE/src/ArduinoBLE.h:23,
from src/ArduinoBleOtaClass.h:6,
from src/ArduinoBleOTA.h:9,
from /home/tsiselsk/Projects/private/ArduinoBleOTA/examples/full/main.ino:1:
/home/tsiselsk/.platformio/packages/framework-arduinoespressif32/libraries/BLE/src/BLEDescriptor.h:25:7: note: previous definition of 'class BLEDescriptor'
class BLEDescriptor {
^~~~~~~~~~~~~
In file included from .pio/libdeps/esp32dev/ArduinoBLE/src/BLEService.h:23,
from .pio/libdeps/esp32dev/ArduinoBLE/src/BLEAdvertisingData.h:25,
from .pio/libdeps/esp32dev/ArduinoBLE/src/local/BLELocalDevice.h:25,
from .pio/libdeps/esp32dev/ArduinoBLE/src/ArduinoBLE.h:23,
from src/ArduinoBleOtaClass.h:6,
from src/ArduinoBleOTA.h:9,
from /home/tsiselsk/Projects/private/ArduinoBleOTA/examples/full/main.ino:1:
Looks that now .platformio use both ~/.platformio/packages/framework-arduinoespressif32/libraries/BLE and pio/libdeps/esp32dev/ArduinoBLE libraries.
Found some issue:
But don’t know how o solve it. Are platformio use the same dependency algorithm as arduino?
I think that issue occurs just because after using native library (target env:esp32dev_native) platformio dowloads ~/.platformio/packages/framework-arduinoespressif32/libraries/BLE. And after that env:esp32dev target use native library and ArduinoBLE at the same time. Don’t know how to force using only ArduinoBLE for env:esp32dev. @maxgerhardt do You have an idea?