繁体   English   中英

如何在Mac OS X中隐藏终端窗口?

[英]How to hide terminal window in mac osx?

我有一个在Windows,Linux,Android和Mac上运行的多平台应用程序。 在所有平台上均使用g ++进行编译。

对于Windows,我创建了一个安装程序,并通过添加链接器标志摆脱了终端窗口:

-Wl,--subsystem,windows

我正在Mac上寻找类似的选项。 从GUI打开可执行文件时,如何摆脱控制台窗口?

这个问题类似于如何在Mac OS(gcc编译器)中隐藏控制台窗口? ,但我的应用程序不是守护程序。

谢谢。

根据您的描述,您正在构建什么是Unix风格的可执行文件。 在OS X上,这些将始终在终端窗口内启动。 在OS X上有以下选择:

  • 如上面链接的文章所述,作为守护程序运行
  • 在终端中作为UNIX可执行文件运行
  • 创建最小的OS X应用程序包装并作为OS X应用程序运行

在大多数情况下,您可以按照Apple捆绑软件编程指南中的说明创建适当的捆绑软件 ,从而为Unix风格的可执行文件创建包装器(跳过iOS内容并查看Mac捆绑软件信息)。

基本目录结构为:

MyApp.app/
  Contents/
    Info.plist
  MacOS/
    executable
  Resources/
    MyApp.icns

您未修改的可执行文件可以进入MacOS目录,并且您需要使用plist编辑工具或编辑器在Info.plist设置以下键:

  • CFBundleIdentifier您的应用程序ID(采用反向DNS表示法)( com.mycompany.myapp
  • CFBundleDisplayName以易于MyApp形式显示您的应用程序的名称( MyApp
  • CFBundleName应用程序的简称(通常与您的应用程序和可执行文件名称相同)
  • CFBundleVersion您的版本号为XY [.Z]形式
  • CFBundlePackageType程序包类型,对于应用程序应为APPL
  • CFBundleExecutable可执行文件的名称
  • CFBundleSignature老式的Apple签名(理论上应该向Apple注册的4个字符代码)

最小plist如下所示:CFBundleDisplayName MyApp CFBundleExecutable a.out CFBundleIdentifier com.mycompany.myapp CFBundleName MyApp CFBundlePackageType APPL CFBundleSignature FOOZ CFBundleVersion 1.0

(以上示例使用a.out作为可执行文件,该文件位于MyApp.app/Contents/MacOS/a.out

如果您不关心图标资源,则可以省去图标资源,并且将使用默认的应用程序图标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM