【发布时间】:2011-03-03 23:45:54
【问题描述】:
我正在将一些可怕的遗留 C++ 代码从 gcc 3.x 移植到 4.x 头文件中有这样一个结构:
extern class ErrorLog
{
. . .
} error_log, debug_log;
在 3.x 下它可以编译并且工作正常,但是在 4.x 下我得到很多形式的错误
undefined reference to `error_log'
undefined reference to `ErrorLog::log(ErrorLog::LogAttr const&, char const*, ...)'
【问题讨论】:
-
ErrorLog::log 在哪里实现? error_log 的实际定义在哪里?听起来您的 makefile 已更改,并且您缺少一个 .cpp 文件。
-
ErrorLog 的方法和实例 error_log 在 ErrorLog.cc 的其他地方实现。那是建立和联系的。相同的代码可以与 3.x 编译器链接
标签: c++ class reference undefined extern