0

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

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

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

在我注释掉宏之后:

Implement_App(TestApp)

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

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

4

1 回答 1

4

IMPLEMENT_APP是 wxWidgets 中使用的一个宏,用于创建程序的入口点,而无需担心程序是否会在 Windows、Mac、*nix 或其他任何平台上编译。因此,IMPLEMENT_APP 必须定义main(或其等价物,例如WinMain)。

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

wxApp 概述中的这一段也有点帮助:

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

于 2009-11-19T22:01:36.953 回答