Arduino Cloud will not compile

With the Arduino web editor I can establish a cloud connection to the RP2040. With Platformio I get the following error message:

.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\utility\ota\OTA-nano-rp2040.cpp:30:10: fatal error: SFU.h: No such file or directory

*************************************************************
* Looking for SFU.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:SFU.h"
* Web  > https://registry.platformio.org/search?q=header:SFU.h
*
*************************************************************

   30 | #include <SFU.h>
      |          ^~~~~~~
compilation terminated.
*** [.pio\build\nanorp2040connect\libdd1\ArduinoIoTCloud\utility\ota\OTA-nano-rp2040.cpp.o] Error 1

Does anyone have a tip for me on how I can bring in the SFU.h?

.ini file:

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:nanorp2040connect]
platform = raspberrypi
board = nanorp2040connect
framework = arduino
; change microcontroller
board_build.mcu = rp2040
; change MCU frequency
board_build.f_cpu = 133000000L

upload_protocol = picotool
lib_deps = 
  bodmer/TFT_eSPI@^2.5.30
  adafruit/Adafruit MCP23017 Arduino Library@^2.3.0
  adafruit/Adafruit MPR121@^1.1.1
  ArduinoJson@6.14.1
  arduino-libraries/ArduinoIoTCloud@^1.11.1
  arduino-libraries/Arduino_ConnectionHandler@^0.7.4

; Benutzerdefinierte Installation LCD ohne Setup-Datei zu verändern
build_flags =
  -D USER_SETUP_LOADED=1                        ; Set this settings as valid
  -include $PROJECT_LIBDEPS_DIR/$PIOENV/TFT_eSPI/User_Setups/Setup62_RP2040_Nano_Connect_ILI9341.h
```5

The SFU libary is built-in to the core and thus should be discoverable for PlatformIO. Have you tried different lib_ldf_mode settings?

Unfortunately, that hasn’t changed anythin.

Huh? When I copy-paste the example files from https://github.com/arduino-libraries/ArduinoIoTCloud/tree/master/examples/ArduinoIoTCloud-Basic with a platformio.ini

[env:nanorp2040connect]
platform = raspberrypi
board = nanorp2040connect
framework = arduino
lib_deps = 
  arduino-libraries/ArduinoIoTCloud@^1.11.1
  arduino-libraries/Arduino_ConnectionHandler@^0.7.4
lib_ldf_mode = deep+

it compiles just fine.

RAM:   [==        ]  24.3% (used 65784 bytes from 270336 bytes)
Flash: [          ]   0.2% (used 5034 bytes from 2093056 bytes)
Building .pio\build\nanorp2040connect\firmware.bin
========================= [SUCCESS] Took 88.49 seconds =========================

Hmm, not for me:

Processing nanorp2040connect (platform: raspberrypi; board: nanorp2040connect; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/raspberrypi/nanorp2040connect.html
PLATFORM: Raspberry Pi RP2040 (1.9.0) > Arduino Nano RP2040 Connect
HARDWARE: RP2040 133MHz, 264KB RAM, 2MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, jlink, raspberrypi-swd)
PACKAGES:
 - framework-arduino-mbed @ 4.0.2
 - tool-rp2040tools @ 1.0.2
 - toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 57 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ArduinoIoTCloud @ 1.11.1
|-- Arduino_ConnectionHandler @ 0.7.4
Building in release mode
Compiling .pio\build\nanorp2040connect\libc4c\ArduinoIoTCloud\utility\ota\OTA-nano-rp2040.cpp.o
Compiling .pio\build\nanorp2040connect\FrameworkArduino\wiring_shift.cpp.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\utility\ota\OTA-nano-rp2040.cpp:30:10: fatal error: SFU.h: No such file or directory

*************************************************************
* Looking for SFU.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:SFU.h"
* Web  > https://registry.platformio.org/search?q=header:SFU.h
*
*************************************************************

   30 | #include <SFU.h>
      |          ^~~~~~~
compilation terminated.
*** [.pio\build\nanorp2040connect\libc4c\ArduinoIoTCloud\utility\ota\OTA-nano-rp2040.cpp.o] Error 1
============================================================ [FAILED] Took 37.35 seconds ============================================================

 *  Der Terminalprozess "C:\Users\CarstenTower\.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'nanorp2040connect'" wurde mit folgendem Exitcode beendet: 1. 

thingProperties.h:

#if defined(BOARD_HAS_WIFI)
#elif defined(BOARD_HAS_GSM)
#elif defined(BOARD_HAS_LORA)
#elif defined(BOARD_HAS_NB)
#elif defined(BOARD_HAS_ETHERNET)
#else
  #error "Please check Arduino IoT Cloud supported boards list: https://github.com/arduino-libraries/ArduinoIoTCloud/#what"
#endif

#if defined(BOARD_ESP)
  #define BOARD_ID "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
#endif

void onLedChange();

bool led;
int potentiometer;
int seconds;

void initProperties() {
#if defined(BOARD_ESP)
  ArduinoCloud.setBoardId(BOARD_ID);
  ArduinoCloud.setSecretDeviceKey(SECRET_DEVICE_KEY);
#endif
#if defined(BOARD_HAS_WIFI) || defined(BOARD_HAS_GSM) || defined(BOARD_HAS_NB) || defined(BOARD_HAS_ETHERNET)
  ArduinoCloud.addProperty(led, Permission::Write).onUpdate(onLedChange);
  ArduinoCloud.addProperty(potentiometer, Permission::Read).publishOnChange(10);
  ArduinoCloud.addProperty(seconds, Permission::Read).publishOnChange(1);
#elif defined(BOARD_HAS_LORA)
  ArduinoCloud.addProperty(led, 1, READWRITE, ON_CHANGE, onLedChange);
  ArduinoCloud.addProperty(potentiometer, 2, READ, ON_CHANGE);
  ArduinoCloud.addProperty(seconds, 3, READ, 5 * MINUTES);
#endif
}

#if defined(BOARD_HAS_ETHERNET)
  /* DHCP mode */
  //EthernetConnectionHandler ArduinoIoTPreferredConnection;
  /* Manual mode. It will fallback in DHCP mode if SECRET_OPTIONAL_IP is invalid or equal to "0.0.0.0" */
  EthernetConnectionHandler ArduinoIoTPreferredConnection(SECRET_OPTIONAL_IP, SECRET_OPTIONAL_DNS, SECRET_OPTIONAL_GATEWAY, SECRET_OPTIONAL_NETMASK);
#elif defined(BOARD_HAS_WIFI)
  WiFiConnectionHandler ArduinoIoTPreferredConnection(SECRET_SSID, SECRET_PASS);
#elif defined(BOARD_HAS_GSM)
  GSMConnectionHandler ArduinoIoTPreferredConnection(SECRET_PIN, SECRET_APN, SECRET_LOGIN, SECRET_PASS);
#elif defined(BOARD_HAS_LORA)
  LoRaConnectionHandler ArduinoIoTPreferredConnection(SECRET_APP_EUI, SECRET_APP_KEY, _lora_band::EU868, NULL, _lora_class::CLASS_A);
#elif defined(BOARD_HAS_NB)
  NBConnectionHandler ArduinoIoTPreferredConnection(SECRET_PIN, SECRET_APN, SECRET_LOGIN, SECRET_PASS);
#endif

platform.ini:

[env:nanorp2040connect]
platform = raspberrypi
board = nanorp2040connect
framework = arduino
lib_deps = 
  arduino-libraries/ArduinoIoTCloud@^1.11.1
  arduino-libraries/Arduino_ConnectionHandler@^0.7.4
lib_ldf_mode = deep+

It still says chain here. My log says

LDF Modes: Finder ~ deep+, Compatibility ~ soft

are you sure you have the platformio.ini saved correctly? If there are multiple projects in the VSCode workspace, make sure to select the correct project and environment.

I have to restart after changing the .ini from chain to deep+ platformio. Otherwise the change will not take effect! Now SFU.h is recognized! Thanks very much!!

Numerous (120) warnings are displayed during compilation:

.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator+(CloudInt, int)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:132:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  132 |       return iw += v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\ccopy.c.o
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator+(int, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:135:29: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  135 |       return CloudInt(v) += iw;
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\chacha20_ct.c.o
      |                             ^~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\chacha20_sse2.c.o
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator-(CloudInt, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:138:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  138 |       return iw -= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator-(CloudInt, int)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:141:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  141 |       return iw -= v;
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dec16be.c.o
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator-(int, CloudInt)':
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dec16le.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:144:29: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  144 |       return CloudInt(v) -= iw;
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dec32be.c.o
      |                             ^~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator*(CloudInt, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:147:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  147 |       return iw *= v;
      |                    ^
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dec32le.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator*(CloudInt, int)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:150:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  150 |       return iw *= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dec64be.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator*(int, CloudInt)':
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dec64le.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:153:29: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  153 |       return CloudInt(v) *= iw;
      |                             ^~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\des_ct.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator/(CloudInt, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:156:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  156 |       return iw /= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\des_ct_cbcdec.c.o
~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator/(CloudInt, int)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:159:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\des_ct_cbcenc.c.o
  159 |       return iw /= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator/(int, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:162:29: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  162 |       return CloudInt(v) /= iw;
      |                             ^~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\des_support.c.o
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator%(CloudInt, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:165:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  165 |       return iw %= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\des_tab.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator%(CloudInt, int)':
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\des_tab_cbcdec.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:168:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  168 |       return iw %= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator%(int, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:171:29: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  171 |       return CloudInt(v) %= iw;
      |                             ^~
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\des_tab_cbcenc.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator&(CloudInt, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:174:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  174 |       return iw &= v;
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dig_oid.c.o
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\dig_size.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator&(CloudInt, int)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:177:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  177 |       return iw &= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator&(int, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:180:29: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\eax.c.o
  180 |       return CloudInt(v) &= iw;
      |                             ^~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator|(CloudInt, CloudInt)':
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\ec_all_m15.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:183:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\ec_all_m31.c.o
  183 |       return iw |= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator|(CloudInt, int)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:186:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  186 |       return iw |= v;
      |                    ^
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~~~~~
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\ec_c25519_i15.c.o
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator|(int, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:189:29: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  189 |       return CloudInt(v) |= iw;
Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\ec_c25519_i31.c.o
      |                             ^~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:67:15: note: because 'CloudInt' has user-provided 'CloudInt& CloudInt::operator=(CloudInt)'
   67 |     CloudInt& operator=(CloudInt v) {
      |               ^~~~Compiling .pio\build\nanorp2040connect\libb10\ArduinoIoTCloud\tls\bearssl\ec_c25519_m15.c.o
~~~~
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h: In function 'CloudInt operator^(CloudInt, CloudInt)':
.pio\libdeps\nanorp2040connect\ArduinoIoTCloud\src\property\types/CloudInt.h:192:20: warning: implicitly-declared 'CloudInt::CloudInt(const CloudInt&)' is deprecated [-Wdeprecated-copy]
  192 |       return iw ^= v;
      |                    ^

With the addition of

extra_scripts = pre:ignore_deprecated_copy_warn.py

with ignore_deprecated_copy_warn.py having a content of

Import("env")
for e in env, DefaultEnvironment():
    e.Append(CXXFLAGS=["-Wno-deprecated-copy", "-Wno-deprecated-declarations"])

most of those warnings should be gone.

1 Like

Sorry, I didn’t understand that. “extra_scripts = pre:ignore_deprecated_copy_warn.py” in the .ini?

Yes, this is a platformio.ini option. See PlatformIO documentation.

unfortunately the warnings remain. am I doing something wrong again?

connect\src\main.cpp.o
Generating LD script .pio\build\nanorp2040connect\cpp.linker_script.ld
Compiling .pio\build\nanorp2040connect\lib3b0\SPI\SPI.cpp.o
Compiling .pio\build\nanorp2040connect\lib93d\TFT_eSPI\TFT_eSPI.cpp.o
Compiling .pio\build\nanorp2040connect\libd86\Wire\Wire.cpp.o
In file included from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/pico_platform/include/pico/platform.h:19,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/common/pico_base/include/pico.h:22,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/objects.h:30,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/device.h:35,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/platform.h:28,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/platform/include/platform/FileHandle.h:25,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/macros.h:41,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\variants\NANO_RP2040_CONNECT/pins_arduino.h:2,
                 from C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/Arduino.h:76,
                 from .pio\libdeps\nanorp2040connect\TFT_eSPI\TFT_eSPI.h:30,
                 from .pio\libdeps\nanorp2040connect\TFT_eSPI\TFT_eSPI.cpp:16:
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_dma/include/hardware/dma.h: In function 'dma_channel_hw_t* dma_channel_hw_addr(uint)':
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/regs/addressmap.h:64:21: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
   64 | #define DMA_BASE _u(0x50000000Archiving .pio\build\nanorp2040connect\lib3b0\libSPI.a
)
      |                     ^~~~~~~~Compiling .pio\build\nanorp2040connect\lib0ed\Adafruit BusIO\Adafruit_BusIO_Register.cpp.o
~~
Archiving .pio\build\nanorp2040connect\libd86\libWire.a
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/platform_defs.h:16:15: note: in definition of macro '_u'
   16 | #define _u(x) x ## u
      |               ^
Compiling .pio\build\nanorp2040connect\lib0ed\Adafruit BusIO\Adafruit_I2CDevice.cpp.o
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_structs/include/hardware/structs/dma.h:197:34: note: in expansion of macro 'DMA_BASE'
  197 | #define dma_hw ((dma_hw_t *const)DMA_BASE)
      |                                  ^~~~~~~~
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_dma/include/hardware/dma.h:63:13: note: in expansion of macro 'dma_hw'
   63 |     return &dma_hw->ch[channel];
      |             ^~~~~~
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_dma/include/hardware/dma.h: In function 'void dma_start_channel_mask(uint32_t)':
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/regs/addressmap.h:64:21: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
   64 | #define DMA_BASE _u(0x50000000)
      |                     ^~~~~~~~~~
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/platform_defs.h:16:15: note: in definition of macro '_u'
   16 | #define _u(x) x ## u
      |               ^
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_structs/include/hardware/structs/dma.h:197:34: note: in expansion of macro 'DMA_BASE'
  197 | #define dma_hw ((dma_hw_t *const)DMA_BASE)
      |                                  ^~~~~~~~
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_dma/include/hardware/dma.h:459:5: note: in expansion of macro 'dma_hw'
  459 |     dma_hw->multi_channel_trigger = chan_mask;
      |     ^~~~~~
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2_common/hardware_dma/include/hardware/dma.h: In function 'void dma_channel_abort(uint)':
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/regs/addressmap.h:64:21: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
   64 | #define DMA_BASE _u(0x50000000)
      |                     ^~~~~~~~~~
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_regs/include/hardware/platform_defs.h:16:15: note: in definition of macro '_u'
   16 | #define _u(x) x ## u
      |               ^
C:\Users\CarstenTower\.platformio\packages\framework-arduino-mbed\cores\arduino/mbed/targets/TARGET_RASPBERRYPI/TARGET_RP2040/pico-sdk/rp2040/hardware_structs/include/hardware/structs/dma.h:197:34: note: in expansion of macro 'DMA_BASE'
  197 | #define dma_hw ((dma_hw_t *const)DMA_BASE)

These are different warnings. Expand the array

in the script accordingly in the -Wno-<error> form.

Wvla Warnung bekomme ich nicht weg:

.pio\libdeps\nanorp2040connect\TFT_eSPI\TFT_eSPI.cpp: In member function 'void TFT_eSPI::pushImage(int32_t, int32_t, int32_t, int32_t, const uint16_t*)':
.pio\libdeps\nanorp2040connect\TFT_eSPI\TFT_eSPI.cpp:1547:13: **warning: variable length array 'buffer' is used [-Wvla]**
Import("env")
for e in env, DefaultEnvironment():
    e.Append(CXXFLAGS=["-Wno-deprecated-copy", "-Wno-deprecated-declarations","-Wno-ignored-qualifiers", "-Wno-vla","-Wno-return-type"])

It may be possible that -Wno-vla has no effect because -Wvla was explicitly given as a flag, in which case it would have to be filtered. You can see if that’s the case by going CLI → pio run -v -j1 and looking at the compiler flags.

Thank you very much, you helped me a lot!:+1::hugs: