可能重复:
What is an undefined reference/unresolved external symbol error and how do I fix it?
虽然g ++报告“错误:未定义引用'Log :: flush()'”,但这意味着我丢失了一个源代码,它定义了类Log的成员函数flush如下:
class Log{
... ...
int flush();
... ...
};
但是如果g ++报告“错误:未定义引用'Log :: outFile'”,那么丢失了什么?没有()
所以这不是一个函数,为什么还有什么需要定义?
答案 0 :(得分:4)
嗯,这不是 GCC诊断输出危险中的一个有趣的练习!
但是如果g ++报告“错误:未定义引用'Log :: outFile'”,那会丢失什么?
Log
的{{1}}静态数据成员的定义很可能是outFile
。
猜测:
class Log
{
int flush();
// ... more functions ...
static std::string outFile;
// ... more data ...
};
你需要写:
std::string Log::outFile;
恰好在一个翻译单元中;将其放在.cpp
文件中,可能是您为Log::flush()
定义的文件。