我将一些可怕的传统C++代码从gcc 3.x移植到4.x 在头文件中有这样的构造:extern class:从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的实际定义在哪里?听起来像你的生成文件改变了,你错过了一个.cpp文件。 – EboMike 2011-03-03 23:50:33
ErrorLog的方法和实例error_log在ErrorLog.cc的其他地方执行。这是建立和联系。相同的代码链接OK 3.x编译器 – 2011-03-04 00:23:13