- Arduino Uno
- ENC28J60
- EtherCard.h
i am trying to compile and run this example. But i am getting this error.
"exit status 1 'word homePage()' was declared 'extern' and later 'static' [-fpermissive]"
#include <EtherCard.h>
static byte mymac[] = {0x65,0x77,0x33,0x2D,0x30,0x66};
static byte myip[] = {192,168,0,99};
byte Ethernet::buffer[500];
BufferFiller bfill;
static word homePage() {
bfill = ether.tcpOffset();
bfill.emit_p( PSTR (
"HTTP/1.0 503 test page\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
"<head><title>"
"Arduino test page"
"</title></head>"
"<body>"
"<h3>Test</h3>"
"<p>Test</p>"
"</body>"
"</html>"
)) ;
return bfill.position();
}
void setup() {
// put your setup code here, to run once:
Serial.begin(57600);
Serial.println("TEST");
Serial.println();
Serial.print("Status: ");
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) {
Serial.println( "Failed to access Ethernet controller");
}
else {
Serial.println( "Ethernet controller OK!");
ether.staticSetup(myip);
ether.dhcpSetup();
}
Serial.println();
ether.printIp("My IP: ", ether.myip);
ether.printIp("GW IP: ", ether.gwip);
ether.printIp("DNS IP: ", ether.dnsip);
}
void loop() {
// put your main code here, to run repeatedly:
word pos = ether.packetLoop(ether.packetReceive());
if (pos){
for (int i=pos;Ethernet::buffer[i]; i++) {
Serial.print((char)Ethernet::buffer[i]);
Serial.println();
ether.httpServerReply(homePage());
}
}
}
Is something wrong with the code or library? The example was copied from the net. Library was updated.
Could u help me with this problem. How to fix it?

It seems that the function
homePagewas declared in the header without storafe class specifierstatic.However then it is defined with the storage class specifier
staticand the compiler reports about this inconsistence.
I think you may remove the storage class specifier
staticin the function definition.Another approach is to place a function declaration with the storage class specifier
staticbefore the header. In this case the function will have internal linkage.