【发布时间】:2016-02-03 13:15:12
【问题描述】:
我有一个 C++ 中的多线程命令行程序。从终端启动时,我可以使用q <RET> 正确退出,这将调用一系列最终释放所有资源的 clean_up 例程。请注意,如果从未按下q <RET>,则程序将永远循环。另请注意,该程序会自行启动一些 GUI 窗口。
我需要将此工具包装为一个应用程序 - 没什么特别的,只是一个漂亮的图标,其中包含所有必要的资产,以便简单的用户只需双击即可启动它。我过去曾成功使用 Platypus 制作过这样的应用程序。
但是我找不到正确退出程序的方法。从那里无法在我的程序中std::cin,我认为在退出时(从菜单或 cmd-Q)鸭嘴兽只会发送一个 SIGTERM 或类似于我的程序的东西(我不能真正使用它来正确清理我的应用程序 - 我需要结束 main 上的无限循环,并在离开 main 时隐式调用所有析构函数。
是否有任何其他简单的方法可以将我的程序包装为 .app,但我可以在退出时调用特定函数?我想用 Cocoa/Swift 创建一个虚拟应用程序,让我的程序成为一个静态库并从那里调用它,但必须有一个更简单的方法。
【问题讨论】:
标签: c++ macos packaging terminate