アプリケーション バンドル内にいると、バイナリ実行可能ファイルの実行方法にどのような影響がありますか?
説明するために、Mountain Lion 用に Emacs をコンパイルしました。これにより、バイナリ実行可能ファイルと、まったく同じバイナリ (diff によると同じ内容) とその他のリソースを含むアプリケーション バンドル Emacs.app が生成されます。
ターミナル (またはファインダー) からバイナリ自体を実行すると、次のようになります。
- Emacs が起動し、初期化ファイルが正しく処理され、見栄えがよくなります。
- ただし、アプリケーションメニューにはまだ「ターミナル」と表示され、
- キーボード入力は Emacs ではなく端末に送られます。
- また、赤い信号機のボタンが Emacs に送信されますが (Emacs は保存するものがないと言います)、プロセスを終了しません。
対照的に、Emacs.app を実行すると、Emacs は期待どおりに実行されます。誰かが私のためにこの違いを説明できますか?