1

位于应用程序包中如何影响二进制可执行文件的运行方式?

为了解释,我为 Mountain Lion 编译了 Emacs。这会生成一个二进制可执行文件,以及一个应用程序包 Emacs.app,它包含完全相同的二进制文件(根据差异,内容相同)以及其他资源。

如果我从终端(或查找器)运行二进制文件本身:

  • Emacs 启动,正确处理我的 init 文件并且看起来不错。
  • 但是应用程序菜单仍然显示“终端”并且
  • 键盘输入进入终端而不是 Emacs。
  • 红色红绿灯按钮也被发送到 Emacs(Emacs 说它没有什么可保存的)但不会终止进程。

相反,如果我运行 Emacs.app,Emacs 会按预期运行。谁能为我解释一下这个区别?

4

1 回答 1

0

当您启动 .app 包时,文件夹根目录下的 Info.plist 会配置许多操作系统特定的行为。

https://developer.apple.com/library/mac/#documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html

您可以通过这种方式启动任何本机可执行文件并具有相同的行为。

于 2013-01-25T21:02:59.220 回答