C++ wxwidgets//g++;编译器错误:没有用于调用';的匹配函数;新操作员(..';

C++ wxwidgets//g++;编译器错误:没有用于调用';的匹配函数;新操作员(..';,c++,wxwidgets,C++,Wxwidgets,目前我尝试将Visual C++应用程序移植到Linux中。在VisualStudio中编译代码没有错误,但是Linux下编译错误很多。其中一个错误是: ../src/wktools4.cpp:29: error: no matching function for call to 'operator new(unsigned int, const char[40], int)' 更多信息: IDE:kdevelop与G++ GUI API: 错误出现在以下行: IMPLEMENT_APP(

目前我尝试将Visual C++应用程序移植到Linux中。在VisualStudio中编译代码没有错误,但是Linux下编译错误很多。其中一个错误是:

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

  • IDE:kdevelop与G++
  • GUI API:
错误出现在以下行:

IMPLEMENT_APP(Cwktools4App)
还有一些其他的线路


我丢失了什么?

看起来你的VisualC++应用程序已经超载了<代码>运算符NeXOR()/<代码> < /P> 这通常是通过(使用您看到的其他参数)向每个内存分配添加调试和其他分析信息来完成的


因为您得到的错误与“强> >代码>框架=新CWKToSt4Frime:,我建议寻找宏或编译器级别的定义,将新的定义为“新”。首先要看的是调试特定的构建。

< P>看起来您的VisualC++应用程序已经超载了<代码>操作符新的。()

这通常是通过(使用您看到的其他参数)向每个内存分配添加调试和其他分析信息来完成的

由于出现错误的原因非常简单,例如
frame=new Cwktools4Frame;
我建议查找将“new”重新定义为其他内容的宏或编译器级别定义。首先要查找的地方应该是特定于调试的版本。

我发现了错误:

#ifdef __WXDEBUG__
#define new WXDEBUG_NEW
#endif
当我删除这些行时,我不再收到错误。代码是从VisualStudio的wxwidgets向导生成的。我不知道它是做什么的

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

我发现了错误:

#ifdef __WXDEBUG__
#define new WXDEBUG_NEW
#endif
当我删除这些行时,我不再收到错误。代码是从VisualStudio的wxwidgets向导生成的。我不知道它是做什么的


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

IMPLEMENT\u APP宏的扩展是什么?它有助于转储预处理器的输出,以查找宏内部的编译时错误。例如,“frame=new Cwktools4Frame;”也会发生这种情况。IMPLEMENT_APP宏扩展到什么?它有助于转储预处理器的输出以查找宏内部的编译时错误。例如,“frame=new-Cwktools4Frame;”也会发生这种情况。我不使用重载的新运算符。也许在某些第三方lib(wxwidgets?)中,它们是这样做的。如何查找/解决此问题?使用“-E”参数再次编译(gcc)有问题的文件。这将在预处理器运行其过程后输出代码的外观,所有宏都将被展开。也许在某些第三方lib(wxwidgets?)中,它们是这样做的。如何查找/解决此问题?使用“-E”参数再次编译(gcc)有问题的文件。这将输出预处理器运行其过程后代码的外观,所有宏都将展开。