wirekraken / ESP8266-Websockets-LED

Real-time addressable LED strip (ws2811/ws2812/ws2812b) control using ESP8266 via web interface.
GNU General Public License v3.0
68 stars 26 forks source link

Call of overloaded `abs(uint32_t)` is ambiguous #8

Closed c7v closed 1 year ago

c7v commented 2 years ago

Arduino: 1.8.15 (Linux), Плата:"Generic ESP8266 Module, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 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"

In file included from /home/artem/Arduino IDEA/libraries/FastLED-master/src/FastLED.h:67, from /home/artem/Загрузки/ESP8266-Websockets-LED-master/ESP8266-LED/ESP8266-LED.ino:7: /home/artem/Arduino IDEA/libraries/FastLED-master/src/fastspi.h:145:23: note: '#pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output' 145 | # pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output" | ^~~~~~~~~~~~~~~~~~~~ /home/artem/Загрузки/ESP8266-Websockets-LED-master/ESP8266-LED/ESP8266-LED.ino: In function 'void webSocketEvent(uint8_t, WStype_t, uint8_t*, size_t)': ESP8266-LED:125:50: error: call of overloaded 'abs(uint32_t)' is ambiguous 125 | uint8_t r = abs(0 + (rgb >> 16) & 0xFF); | ^ In file included from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/cstdlib:75, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/stdlib.h:36, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:27, from sketch/ESP8266-LED.ino.cpp:1: /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/stdlib.h:74:5: note: candidate: 'int abs(int)' 74 | int abs (int); | ^~~ In file included from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/cstdlib:77, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/stdlib.h:36, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:27, from sketch/ESP8266-LED.ino.cpp:1: /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:79:3: note: candidate: 'constexpr long double std::abs(long double)' 79 | abs(long double x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:75:3: note: candidate: 'constexpr float std::abs(float)' 75 | abs(float __x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:71:3: note: candidate: 'constexpr double std::abs(double)' 71 | abs(double x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:61:3: note: candidate: 'long long int std::abs(long long int)' 61 | abs(long long x) { return builtin_llabs (x); } | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:56:3: note: candidate: 'long int std::abs(long int)' 56 | abs(long i) { return builtin_labs(i); } | ^~~ ESP8266-LED:126:50: error: call of overloaded 'abs(uint32_t)' is ambiguous 126 | uint8_t g = abs(0 + (rgb >> 8) & 0xFF); | ^ In file included from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/cstdlib:75, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/stdlib.h:36, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:27, from sketch/ESP8266-LED.ino.cpp:1: /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/stdlib.h:74:5: note: candidate: 'int abs(int)' 74 | int abs (int); | ^~~ In file included from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/cstdlib:77, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/stdlib.h:36, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:27, from sketch/ESP8266-LED.ino.cpp:1: /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:79:3: note: candidate: 'constexpr long double std::abs(long double)' 79 | abs(long double x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:75:3: note: candidate: 'constexpr float std::abs(float)' 75 | abs(float __x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:71:3: note: candidate: 'constexpr double std::abs(double)' 71 | abs(double x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:61:3: note: candidate: 'long long int std::abs(long long int)' 61 | abs(long long x) { return builtin_llabs (x); } | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:56:3: note: candidate: 'long int std::abs(long int)' 56 | abs(long i) { return builtin_labs(i); } | ^~~ ESP8266-LED:127:50: error: call of overloaded 'abs(uint32_t)' is ambiguous 127 | uint8_t b = abs(0 + (rgb >> 0) & 0xFF); | ^ In file included from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/cstdlib:75, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/stdlib.h:36, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:27, from sketch/ESP8266-LED.ino.cpp:1: /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/stdlib.h:74:5: note: candidate: 'int abs(int)' 74 | int abs (int); | ^~~ In file included from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/cstdlib:77, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/stdlib.h:36, from /home/artem/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/3.0.2/cores/esp8266/Arduino.h:27, from sketch/ESP8266-LED.ino.cpp:1: /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:79:3: note: candidate: 'constexpr long double std::abs(long double)' 79 | abs(long double x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:75:3: note: candidate: 'constexpr float std::abs(float)' 75 | abs(float __x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:71:3: note: candidate: 'constexpr double std::abs(double)' 71 | abs(double x) | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:61:3: note: candidate: 'long long int std::abs(long long int)' 61 | abs(long long x) { return builtin_llabs (x); } | ^~~ /home/artem/snap/arduino/61/.arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.4-gcc10.3-1757bed/xtensa-lx106-elf/include/c++/10.3.0/bits/std_abs.h:56:3: note: candidate: 'long int std::abs(long int)' 56 | abs(long i) { return builtin_labs(i); } | ^~~ Несколько библиотек найдено для "FastLED.h" Используется: /home/artem/Arduino IDEA/libraries/FastLED-master Не используется: /home/artem/Arduino IDEA/libraries/FastSPI_LED2-master exit status 1 call of overloaded 'abs(uint32_t)' is ambiguous

Этот отчёт будет иметь больше информации с включенной опцией Файл -> Настройки -> "Показать подробный вывод во время компиляции"

5ch4um1 commented 2 years ago

adding an (int) to each line made the error disappear for me:

       uint8_t r = abs(0 + (int)(rgb >> 16) & 0xFF);
       uint8_t g = abs(0 + (int)(rgb >>  8) & 0xFF);
       uint8_t b = abs(0 + (int)(rgb >>  0) & 0xFF);