0

目前我正在尝试将 Visual C++ 应用程序移植到 Linux。代码在 Visual Studio 中编译没有错误,但在 Linux 下我得到很多编译器错误。这些错误之一是:

../src/wktools4.cpp:29: error: no matching function for
call to 'operator new(unsigned int, const char[40], int)'

更多信息:

  • IDE:使用 G++ 的 kdevelop
  • 图形接口:

错误出现在以下行:

IMPLEMENT_APP(Cwktools4App)

和其他一些行。

我错过了什么?

4

2 回答 2

2

我发现了错误:

#ifdef __WXDEBUG__
#define new WXDEBUG_NEW
#endif

当我删除这些行时,我不再收到错误。该代码是从 VisualStudio 的 wxwidgets 向导生成的。我不知道它有什么作用...

感谢大家的帮助!现在我必须修复链接器错误;)

于 2009-05-12T17:00:41.410 回答
1

看起来您的 Visual C++ 应用程序已重载operator new().

通常这样做(使用您看到的其他参数)为每个内存分配添加调试和其他分析信息。

因为你得到的错误很简单,因为frame = new Cwktools4Frame;我建议寻找将“新”重新定义为其他东西的宏或编译器级定义。首先要看的地方应该是调试特定的构建。

于 2009-05-08T21:47:10.777 回答