好的,所以我的编译器有一个恼人的问题 一个毫无意义的错误。 首先,我使用的是Arduino IDE和ESP8266 Web服务器库 以下是导致问题的代码摘录。
这是标题
#ifndef __ClockServer_H
#define __ClockServer_H
class ClockServer
{
public:
ClockServer(const char* ssid, const char* pass, IPAddress ip, IPAddress gateway);
ClockData getClockData(void);
TimeData getTimeData(void);
...
};
#endif
这是身体的相关部分(ESP库包含在不同的模块中)
#include "ClockServer.h"
/*===============================
* Globals for the server class
=================================*/
ESP8266WebServer server(80);
String indexPage;
bool dataChanged;
ClockData serverClockData;
int timeZone = 12;
TimeData td;
...
/*====================================
* Initialize The Clock Server Object
=====================================*/
ClockServer::ClockServer(const char* ssid, const char* pass, IPAddress ip, IPAddress gateway){
dataChanged = false;
wifiNetwork = ssid;
wifiPass = pass;
wifiIP = ip;
wifiGateway = gateway;
}
...
/*=============================================
* Grabing the Time Data from the server
==============================================*/
TimeData getTimeData(){
return td;
}
...
/*=============================================
* Server Update Loop
==============================================*/
void ClockServer::serverUpdate(){
server.handleClient(); //basicley just waits for url changes and trigers the server.on(url) event
updateTimeData();
Serial.println(td.toString());
//TEST:!!!!
Serial.println(getTimeData().toString());
}
现在,行"Serial.println(td.toString());"
正常运行
但是当我使用Serial.println(getTimeData().toString());
时
编译器不断抛出LEDClock / ClockServer.ino:314:未定义的引用`ClockServer :: getTimeData()'错误
但ClockServer :: getTimeData()已明确定义
...
/*=============================================
* Grabing the Time Data from the server
==============================================*/
TimeData getTimeData(){
return td;
}
...
并在标题中
TimeData getTimeData(void);
现在,行"Serial.println(td.toString());"
与"Serial.println(getTimeData().toString());"
基本相同,唯一的区别是我使用函数来获取td并且编译器认为该函数是未定义的引用< / p>
所以我不知道是什么导致了这个问题。请帮忙。