如何在mac osx中隐藏终端窗口
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应用程序运行
在大多数情况下,你可以为unix风格的可执行文件创建一个包装器,通过使用苹果的Bundle Programming Guide(跳过iOS的东西,看看Mac的Bundle信息)中的说明来创建适当的Bundle。
基本目录结构为:
MyApp.app/
Contents/
Info.plist
MacOS/
executable
Resources/
MyApp.icns
您未修改的可执行文件可以放在MacOS
目录中,并且您需要使用plist编辑工具或编辑器在Info.plist
中设置以下键:
-
CFBundleIdentifier
-你的应用程序的id在反向dns符号(com.mycompany.myapp
) -
CFBundleDisplayName
-你的应用程序的名称在人类可读的形式(MyApp
) -
CFBundleName
-应用程序的短名称(通常与您的应用程序和可执行文件名相同) -
CFBundleVersion
-你的版本#在X.Y[。Z]形式 -
CFBundlePackageType
-包类型,对于应用程序应该是APPL
-
CFBundleExecutable
-可执行文件的名称 -
CFBundleSignature
-老派Apple签名(理论上应该在Apple注册的4个字符代码)
一个最小的列表应该是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDisplayName</key>
<string>MyApp</string>
<key>CFBundleExecutable</key>
<string>a.out</string>
<key>CFBundleIdentifier</key>
<string>com.mycompany.myapp</string>
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>FOOZ</string>
<key>CFBundleVersion</key>
<string>1.0</string>
</dict>
</plist>
(上面的示例使用a.out
作为可执行文件,它将位于MyApp.app/Contents/MacOS/a.out
中)
如果你不关心图标,可以省略图标资源,使用默认的应用程序图标
相关文章:
- 如何在linux终端中同时编译和运行c++代码
- 终端不会为C++文件创建.exe文件吗
- 这是我尝试让用户将值输入到数组中.然后将其隐藏为大量的星号
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 结构和双指针隐藏在其他结构中,多层混淆
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 用于窗口的 HID 终端
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 参数包构造函数在类模板中隐藏用户定义的转换
- 如何等待窗口隐藏在Qt中?
- 使用 ubuntu 终端在 c++ 上运行线程类的问题
- 如何使用类型别名从模板化类中隐藏模板列表
- 在设计 SDK 时,我是否应该在 C++ 头文件中完全隐藏内部类?
- 写入文件 a.txt,而终端重定向到文件 b.txt
- 名称隐藏对静态函数继承的实例使用
- 在 Linux 中使用 ioctl() 获取隐藏功能报告时,零字节消失
- 如何隐藏QT应用中打开的Windows终端
- 如何在mac osx中隐藏终端窗口
- 在终端中隐藏摄像机消息