wxWidgets和“Implement_App”导致_main重复符号错误

时间:2009-11-19 21:37:26

标签: c++ wxwidgets linker-errors

我正在使用XCode 3.2在MacOS X 10.6上编译一个简单的wxWidgets应用程序

链接器返回有关两次定义的符号_main的错误:

  • 曾在main.mm
  • 一次在test_app.cpp文件中。

在我评论出宏之后:

Implement_App(TestApp)

错误消失了,编译和放大链接,我能够运行该应用程序。

我没有在任何地方找到这个,所以有任何想法吗?

1 个答案:

答案 0 :(得分:4)

IMPLEMENT_APP是wxWidgets中用于创建程序入口点的宏,而不必担心程序是否将在Windows,Mac,* nix或其他任何程序上编译。因此,IMPLEMENT_APP 来定义main(或其等价物,例如WinMain)。

您可能会发现IMPLEMENT_APP_NO_MAIN macro很有用。检查wx / app.h中的其他IMPLEMENT_APP_XXX函数。

the wxApp overview中的这一段也有一点帮助:

  

请注意使用IMPLEMENT_APP(appClass),它允许wxWidgets在wxWidgets初始化的适当位置动态创建应用程序对象的实例。以前版本的wxWidgets过去依赖于创建全局应用程序对象,但不再推荐这样做,因为在应用程序对象构造时可能没有执行所需的全局初始化。