pert:
If you posted the error message that would likely be very easy for us to answer.
This is the error logging before renaming from .c to .cpp
In file included from lib\Ethernet_lib\LAN.h:5:0,
from lib\Ethernet_lib\LAN.c:1:
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\libraries\SPI/SPI.h:48:1: error: unknown type name 'class'
class SPISettings {
^~~~~
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\libraries\SPI/SPI.h:48:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
class SPISettings {
^
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\libraries\SPI/SPI.h:112:7: error: unknown type name 'SPISettings'
const SPISettings DEFAULT_SPI_SETTINGS = SPISettings();
^~~~~~~~~~~
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\libraries\SPI/SPI.h:112:42: warning: implicit declaration of function 'SPISettings' [-Wimplicit-function-declaration]
const SPISettings DEFAULT_SPI_SETTINGS = SPISettings();
In file included from C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Print.h:26:0,
from C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Client.h:22,
Compiling .pio\build\mkrwifi1010\FrameworkArduino\Tone.cpp.o
from .pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:52,
from lib\Ethernet_lib\LAN.h:6,
Compiling .pio\build\mkrwifi1010\FrameworkArduino\USB\CDC.cpp.o
from lib\Ethernet_lib\LAN.c:1:
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Printable.h:24:1: error: unknown type name 'class'
Archiving .pio\build\mkrwifi1010\libFrameworkArduinoVariant.a
class Print;
^~~~~
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Printable.h:32:1: error: unknown type name 'class'
class Printable
^~~~~
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Printable.h:33:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
Indexing .pio\build\mkrwifi1010\libFrameworkArduinoVariant.a
Compiling .pio\build\mkrwifi1010\FrameworkArduino\USB\PluggableUSB.cpp.o
^
In file included from C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Client.h:22:0,
from .pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:52,
Compiling .pio\build\mkrwifi1010\FrameworkArduino\USB\USBCore.cpp.o
Compiling .pio\build\mkrwifi1010\FrameworkArduino\USB\samd21_host.c.o
from lib\Ethernet_lib\LAN.h:6,
from lib\Ethernet_lib\LAN.c:1:
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Print.h:36:1: error: unknown type name 'class'
class Print
Compiling .pio\build\mkrwifi1010\FrameworkArduino\Uart.cpp.o
^~~~~
Compiling .pio\build\mkrwifi1010\FrameworkArduino\WInterrupts.c.o
Compiling .pio\build\mkrwifi1010\FrameworkArduino\WMath.cpp.o
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Print.h:37:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
In file included from C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Client.h:23:0,
from .pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:52,
from lib\Ethernet_lib\LAN.h:6,
Compiling .pio\build\mkrwifi1010\FrameworkArduino\WString.cpp.o
from lib\Ethernet_lib\LAN.c:1:
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Stream.h:49:1: error: unknown type name 'class'
class Stream : public Print
Compiling .pio\build\mkrwifi1010\FrameworkArduino\abi.cpp.o
^~~~~
Compiling .pio\build\mkrwifi1010\FrameworkArduino\main.cpp.o
^
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/IPAddress.h:76:31: error: expected declaration specifiers or '...' before numeric constant
const IPAddress INADDR_NONE(0,0,0,0);
Compiling .pio\build\mkrwifi1010\FrameworkArduino\new.cpp.o
.pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:72:1: error: unknown type name 'class'
class DhcpClass;
^~~~~
.pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:74:1: error: unknown type name 'class'
class EthernetClass {
^~~~~
.pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:74:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
class EthernetClass {
^
.pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:147:8: error: unknown type name 'EthernetClass'
extern EthernetClass Ethernet;
^~~~~~~~~~~~~
.pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:152:1: error: unknown type name 'class'
class EthernetUDP : public UDP {
^~~~~
.pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:152:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before ':' token
class EthernetUDP : public UDP {
^
In file included from lib\Ethernet_lib\LAN.h:6:0,
from lib\Ethernet_lib\LAN.c:1:
.pio\libdeps\mkrwifi1010\Ethernet\src/Ethernet.h:214:1: error: unknown type name 'class'
class EthernetClient : public Client {
^~~~~
^
In file included from C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/delay.h:23:0,
from C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\cores\arduino/Arduino.h:81,
from lib\Ethernet_lib\LAN.h:4,
from lib\Ethernet_lib\LAN.c:1:
C:\Users\n.antoniou\.platformio\packages\framework-arduino-samd\variants\mkrwifi1010/variant.h:222:37: error: 'SerialUSB' undeclared (first use in this function); did you mean 'Serial'?
#define Serial SerialUSB
^
lib\Ethernet_lib\LAN.c:59:9: note: in expansion of macro 'Serial'
Serial.println("Ethernet cable is not connected.");
^~~~~~
*** [.pio\build\mkrwifi1010\libe6c\Ethernet_lib\LAN.c.o] Error 1
After renaming the file from .c to .cpp, two separate errors popped up
Building in release mode
Compiling .pio\build\mkrwifi1010\src\main.cpp.o
Linking .pio\build\mkrwifi1010\firmware.elf
.pio\build\mkrwifi1010\src\main.cpp.o: In function `setup':
main.cpp:(.text.setup+0x18): undefined reference to `ethernet_init(unsigned char)'
main.cpp:(.text.setup+0x1e): undefined reference to `DHCP_config(unsigned char*)'
main.cpp:(.text.setup+0x22): undefined reference to `hardware_present()'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\mkrwifi1010\firmware.elf] Error 1
Building in release mode
Compiling .pio\build\mkrwifi1010\libe6c\Ethernet_lib\LAN.cpp.o
Archiving .pio\build\mkrwifi1010\libe6c\libEthernet_lib.a
arm-none-eabi-ar: unable to rename '.pio\build\mkrwifi1010\libe6c\libEthernet_lib.a'; reason: File exists
*** [.pio\build\mkrwifi1010\libe6c\libEthernet_lib.a] Error 1
I solved these error by removing the project folder from the workspace and adding it back again… This is something like a bug or what? As I said I am using platformio and VScode, so I don't know if it was going to compile smoothly on Arduino IDE.