目前我正在尝试将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)'
更多信息:
错误出现在以下行:
IMPLEMENT_APP(Cwktools4App)
和其他一些行。
我错过了什么?
答案 0 :(得分:1)
看起来您的Visual C ++应用程序已经超载operator new()
。
通常会(通过您看到的其他参数)将调试和其他分析信息添加到每个内存分配中。
由于您使用像 frame = new Cwktools4Frame;
这样简单的错误,我建议您查找将“new”重新定义为其他内容的宏或编译器级别定义。首先要看的是调试特定的构建。
答案 1 :(得分:1)
我发现了错误:
#ifdef __WXDEBUG__
#define new WXDEBUG_NEW
#endif
当我删除这些行时,我不会再出现错误了。代码是从VisualStudio的wxwidgets向导生成的。我不知道它的作用......
谢谢大家的帮助!现在我必须修复链接器错误;)