3

编译基本类和头文件时出现此错误。不确定我是否遗漏了一些明显的东西?如果需要,可以提供任何其他详细信息。

注意:我#include <string>在 Event.h 中添加了错误仍然存​​在。

事件.cpp

#include "Event.h"
#include <string>

std::string Event::getLabel() {
    return label;
}

事件.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
4

2 回答 2

10

我有一个类似的问题,并通过删除在标题旁边生成的 [header name].gch 文件解决了这个问题,该文件显然已损坏。也许你可以试试?

于 2014-02-14T18:44:06.257 回答
4

您需要std::string在 Event.h 中包含标题

#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
于 2013-02-21T03:19:17.473 回答