如何在没有终端窗口的情况下启动Mac应用程序

6
我编写了一个开源的c++应用程序,在Windows和Linux上运行良好,最近我购买了一台Mac Mini(版本为10.5.8),所以我正在测试Mac版本。
当我在终端窗口内键入“./appname”时,我的应用程序可以正常工作,但如果我从Finder中双击它,它会首先打开一个终端窗口,然后运行我的应用程序,但似乎没有将工作目录设置为正确的位置,导致我的应用程序出现故障。
我该如何使我的应用程序在被双击启动时不会首先打开终端窗口,并且如何自动将当前目录设置为应用程序的位置?
1个回答

4

Mac二进制文件通常会使用“终端”程序打开,除非创建一个完整的应用程序包,或通过system等方式让其他程序启动它。

双击二进制文件时,终端窗口会以 ~ 作为当前目录打开。如果您需要在正确的目录下运行程序,建议在您的程序中使用 chdir(2)


成功了!谢谢,现在我的应用程序可以运行了,但终端窗口仍然停留在我的应用程序窗口的上方。你知道如何隐藏或关闭终端窗口吗? - KPexEA
@KPexEA: 很遗憾,你不能两者兼得 - 你要么编写一个通用的命令行工具,要么编写一个拥有 GUI、捆绑包、.plist 等所有必要元素的真正的 Mac 应用程序。 - Paul R
@Paul R,我确实希望它成为一个真正的Mac应用程序。你知道有没有地方记录如何将其制作成一个真正的应用程序。我正在使用makefile构建它,因此如果我可以在makefile中添加“make bundle”以将所有内容打包起来,那就最好了。它是一个单独的exe文件,不需要单独的数据文件。 - KPexEA
1
@KPexEA:你可以从这里的信息开始学习:http://developer.apple.com/mac/library/documentation/corefoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html - Paul R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接