MCUdude / MiniCore

Arduino hardware package for ATmega8, ATmega48, ATmega88, ATmega168, ATmega328 and ATmega328PB
Other
995 stars 245 forks source link

Pololu ATmega328PB works / Minicore NOT #232

Closed avandalen closed 2 years ago

avandalen commented 2 years ago

I use the Minicore ATmega328PB succesfully in some sketches.

But I have a strange compiler error with the Wattmeter-dongle sketch: It works fine with the package: Pololu ATmega328PB installed But with package Minicore ATmega328PB, I get this error:

In file included from D:\DATA BACKUPPED\Documenten Albert\1 Solarbike development\Battery enz\0 Wattmeter dongle\Code\Wattmeter-dongle\Wattmeter-dongle\Wattmeter-dongle\Wattmeter-dongle.ino:56:0: libLTC2944.h:35:3: error: extra qualification 'LTC2944_1024::' on member 'LTC2944_1024' [-fpermissive] LTC2944_1024::LTC2944_1024(float rSense); ^~~~~~~~~~~~ exit status 1 extra qualification 'LTC2944_1024::' on member 'LTC2944_1024' [-fpermissive] This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences. Wattmeter-dongle.zip

MCUdude commented 2 years ago

-fpermissive is the key here.

The Pololu 328PB core adds the -fpermissive flag, which turns certain errors into warnings. This is IMO a mistake, and will only hide code errors from the user since warnings are hidden by default in Arduino IDE. Tell the library author to fix their code, or modify the library code yourself to make it compile with MiniCore. I-ve decided to not include the -fpermissive flag for all my "classic AVR" Arduino cores.

avandalen commented 2 years ago

Suddenly your minicore works again on my project, just like Pololu... Both have no warnings or errors.