可执行文件是否总是在MacOS上打开终端窗口?

特雷夫纽特

我在MacOS X上,对于应用程序捆绑类型的东西还很陌生。我正在编写一个打开窗口并注册鼠标输入的程序-而不是命令行工具。当我将代码(用C编写,如果很重要)编译为可执行文件(“ unix可执行文件”),然后直接运行该文件(例如,双击该文件)时,将弹出一个终端窗口,然后然后程序窗口弹出。同样,如果我导航到可执行文件的目录并从命令行打开它,则它会先打开/ another /终端窗口,然后是该程序的窗口。

但是,如果我将可执行文件打包成一个包(因此,我想将其变成一个适当的“应用程序”),那么当我通过双击或从命令行运行该应用程序时,该程序的窗口将打开并且没有新窗口终端窗口已创建。这仅仅是“应用程序捆绑包”体系结构的一个属性吗?还是有一种方法可以运行原始可执行文件而不会引起另一个终端窗口?我怀疑我误解了一些基本知识。提前致谢!

黑暗骑士

我相信您所看到的是正确的。为了不弹出单独的窗口,您需要将其封装到一个包中。

通过双击捆绑软件或使用Terminal中的“ open”命令启动,将使用Apple的Launch Services,该服务维护已知(已注册)应用程序的列表。将应用程序(捆绑包)引入系统后,它会在Launch Services中注册并与它的URI(例如com.apple.calculator)相关联,该URI出现在捆绑包的Info.plist中

Info.plist中的其他项目告诉启动服务如何处理应用程序,例如检查是否已超过操作系统的最低或最高版本,或者是否显示停靠项。

一个单独的二进制文件没有关联的Info.plist清单,因此它的行为无法改变,并且会打开一个Terminal窗口。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否创建了无法在OSX上打开终端窗口的Golang可执行文件?

是否可以防止Windows 10用户在整个分区上打开可执行文件?

Mac os 终端:终端窗口中的可点击文本(c 可执行文件)

终端窗口找不到 git 可执行文件 (Rstudio 1.1.331)

Bash脚本在新终端中打开可执行文件

Linux中的终端可执行文件是否有惯用变量?

如何从Golang创建可执行文件,该可执行文件在运行时不会打开控制台窗口?

Windows上的Ubuntu作为VS Code终端-可执行文件路径

在终端(或iTerm2)中的可执行文件上更改颜色

在MacOSX上,cupsctl终端可执行文件在哪里?

为Mac终端命令创建可执行文件

如何在macOS上为Linux构建Swift可执行文件

我应该在macOS上的哪里放置本地可执行文件?

gdb 8.2无法识别macOS Mojave 10.14上的可执行文件

cat / sed一个iOS可执行文件-macOS上的错误

windows 可执行文件如何知道它是否是从控制台打开的

Windows上“打开方式”对话框的可执行文件

Linux Ubuntu上“打开方式”对话框的可执行文件

用php打开可执行文件

设置tkinter filedialog只打开可执行文件

Apple Dsymutil错误“无法打开可执行文件”

Java .jar可执行文件无法打开(双击)

禁用Firefox的“打开可执行文件”警告

Pyinstaller 可执行文件打开并立即关闭

pyinstaller 可执行文件有错误,但在终端上打开 .py 文件时完全没问题

为什么在Windows上通过多处理模块调用函数时python可执行文件会打开新的窗口实例

可执行文件上的 Python 文件提取器

是否可以在基于yum或rpm的Linux上编译可移植可执行文件?

如何测试Powershell中系统上是否存在程序/可执行文件?