我將一些可怕的傳統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