0

現在、Visual C++ アプリケーションを Linux に移植しようとしています。コードは Visual Studio ではエラーなしでコンパイルされますが、Linux では多くのコンパイラ エラーが発生します。これらのエラーの 1 つは次のとおりです。

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

詳しくは:

  • IDE: G++ を使用した kdevelop
  • GUI API:

エラーは次の行に表示されます。

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 に答える