CIRCUITSTATE / CSE_ModbusRTU

Arduino library for implementing Modbus RTU communication protocols using hardware/software serial ports.
MIT License
6 stars 1 forks source link

Commpilation fails with "multiple definition of `std::nothrow'" error in ArduinoSTL #10

Open vishnumaiea opened 2 weeks ago

vishnumaiea commented 2 weeks ago

Compiling the example codes for AVR boards fails with the following error.

"C:\\Users\\vishn\\AppData\\Local\\Temp\\arduino\\sketches\\CFD1AAB4CF203E2EAE69AAF90A217759\\libraries\\CSE_ArduinoRS485\\CSE_RS485.cpp.o" "C:\\Users\\vishn\\AppData\\Local\\Temp\\arduino\\sketches\\CFD1AAB4CF203E2EAE69AAF90A217759/..\\..\\cores\\arduino_avr_mega_cpu_atmega2560_f1703447891cbc4ef4897f5c3715b6c9\\core.a" "-LC:\\Users\\vishn\\AppData\\Local\\Temp\\arduino\\sketches\\CFD1AAB4CF203E2EAE69AAF90A217759" -lm
new.cpp.o (symbol from plugin): In function `operator new(unsigned int)':
(.text+0x0): multiple definition of `std::nothrow'
C:\Users\vishn\AppData\Local\Temp\arduino\sketches\CFD1AAB4CF203E2EAE69AAF90A217759\libraries\ArduinoSTL\new_handler.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Using library CSE_ModbusRTU at version 0.0.7 in folder: D:\Code\Arduino\libraries\CSE_ModbusRTU 
Using library ArduinoSTL at version 1.3.3 in folder: D:\Code\Arduino\libraries\ArduinoSTL 
Using library CSE_ArduinoRS485 at version 1.0.13 in folder: D:\Code\Arduino\libraries\CSE_ArduinoRS485 
Error during build: exit status 1

Used library     Version Path
CSE_ModbusRTU    0.0.7   D:\Code\Arduino\libraries\CSE_ModbusRTU
ArduinoSTL       1.3.3   D:\Code\Arduino\libraries\ArduinoSTL
CSE_ArduinoRS485 1.0.13  D:\Code\Arduino\libraries\CSE_ArduinoRS485

Used platform Version Path
arduino:avr   1.8.6   C:\Users\vishn\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
IntelliSense configuration already up to date. To manually rebuild your IntelliSense configuration run "Ctrl+Alt+I"
[Error] Verifying sketch 'ModbusRTU_Client_LED.ino': Exit with code=1

Library Version: 0.0.7

vishnumaiea commented 2 weeks ago

The issue is with the ArduinoSTL library and has been already reported at https://github.com/mike-matera/ArduinoSTL/issues/84. A PR https://github.com/mike-matera/ArduinoSTL/pull/94 already exists but it has not been merged yet.

So the current workaround for those who use the CSE_ModbusRTU library is to manually edit the new_handler.cpp file.

This issue will remain open until the issue is fixed at the ArduinoSTL library side.