编译基本类和标题时出现此错误。不确定我是否遗漏了明显的东西?如果需要,可以提供任何其他细节。
注意:我在Event.h中添加了#include <string>
,错误仍然存在。
Event.cpp
#include "Event.h"
#include <string>
std::string Event::getLabel() {
return label;
}
Event.h
#ifndef EVENT_H
#define EVENT_H
#define EVENT_STOP 0
#define EVENT_START 1
class Event {
private:
protected:
double time;
std::string label;
int type; // EVENT_START OR EVENT_STOP
public:
std::string getLabel();
};
#endif
编译和错误
g++ -c -Wall -pedantic correngine.cpp
g++ -c -Wall -pedantic CSVManager.cpp
g++ -c -Wall -pedantic ServerEvent.cpp
g++ -c -o UPSEvent.o UPSEvent.cpp
g++ -c -Wall -pedantic CorrelationEngineManager.cpp
g++ -c -Wall -pedantic Event.cpp
Event.cpp:4: error: no ‘std::string Event::getLabel()’ member function declared in class ‘Event’
make: *** [Event.o] Error 1
答案 0 :(得分:9)
我遇到了类似的问题,并通过删除标题旁边生成的[标题名称] .gch文件解决了这个问题,并且显然已经损坏了。也许你可以尝试一下?
答案 1 :(得分:4)
您需要在Event.h中包含std::string
标头
#ifndef EVENT_H
#define EVENT_H
#include <string> //<<---- here
#define EVENT_STOP 0
#define EVENT_START 1
class Event {
private:
protected:
double time;
std::string label;
int type; // EVENT_START OR EVENT_STOP
public:
std::string getLabel();
};
#endif