wxwidgets // g ++ Ошибка компилятора: нет подходящей функции для вызова оператора 'new (..' - PullRequest
0 голосов
/ 08 мая 2009

В данный момент я пытаюсь перенести приложение 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 ++
  • API GUI:

Ошибка появляется в следующей строке:

IMPLEMENT_APP(Cwktools4App)

и некоторые другие строки.

Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 12 мая 2009

Я нашел ошибку:

#ifdef __WXDEBUG__
#define new WXDEBUG_NEW
#endif

Когда я удаляю эти строки, я больше не получаю ошибок. Код был сгенерирован из мастера wxwidgets для VisualStudio. Я понятия не имею, что он делает ...

Спасибо всем за помощь! Теперь я должен исправить ошибки компоновщика;)

1 голос
/ 09 мая 2009

Похоже, ваше приложение Visual C ++ перегружено operator new().

Это часто делается (с дополнительными параметрами, которые вы видите), чтобы добавить отладочную и другую информацию анализа к каждому выделению памяти.

Поскольку вы получаете ошибку с чем-то простым, например frame = new Cwktools4Frame;, я рекомендую поискать макросы или определения уровня компилятора, которые переопределяют «new» как нечто другое. Первое место, которое нужно искать, должно быть в отладочных сборках.

...