Mac OSX下如何设置可执行程序的工作目录(Xcode C++项目GUI启动场景)
解决方案:GUI方式启动C++可执行文件并自动切换到工作目录
先给你捋下问题本质:Mac上双击命令行可执行文件时,系统默认会把**用户主目录(/Users/chefjeff/)**设为工作目录,而不是可执行文件所在的文件夹,这就导致你的程序找不到依赖的文件;另外终端运行完程序会自动退出,所以你看到了两次退出提示。
下面的方案完美适配你的需求——不管CultGame项目文件夹放在文件系统的任意位置,都能通过双击GUI方式启动,且自动切换到项目目录运行:
方案1:用Automator创建包装应用(最简单的GUI操作方式)
这是最直观的办法,不需要复杂命令,全程图形界面操作:
- 打开Mac自带的「自动操作」(Automator)应用,选择新建「应用程序」类型的文档,点击「选取」。
- 在左侧的动作搜索框里输入「运行AppleScript」,找到后拖到右侧的工作区。
- 把默认的AppleScript代码替换成下面的内容,记得把
你的可执行文件名换成你项目里实际的可执行文件名称(比如CultGame):
-- 获取当前Automator应用所在的文件夹路径 set appFolder to POSIX path of (container of (path to me)) -- 切换到该文件夹并启动可执行文件 tell application "Terminal" do script "cd " & quoted form of appFolder & " && ./你的可执行文件名; exec bash" activate end tell
补充:代码里的
; exec bash是为了让终端窗口在程序运行结束后保持打开,方便你查看输出日志;如果不需要保留终端窗口,删掉这部分即可。
- 点击顶部菜单栏的「文件」→「存储」,把这个Automator应用命名(比如叫
启动CultGame),然后把它和你的CultGame项目文件夹放在一起(或者直接放到项目文件夹内部)。 - 以后双击这个Automator应用,就会自动打开终端,切换到项目目录并启动你的程序,完全符合需求。
- (可选)给这个应用换个好看的图标:右键点击Automator应用→「显示简介」,把你项目可执行文件的图标(或者自定义图标)拖到简介窗口左上角的图标位置即可。
方案2:创建可双击的Shell脚本包装(进阶方式)
如果你习惯用命令行做简单配置,也可以用这种方式:
- 在
CultGame项目文件夹里新建一个文本文件,命名为启动脚本.command。 - 打开这个文件,输入以下内容,同样替换
你的可执行文件名为实际名称:
#!/bin/bash # 切换到当前脚本所在的文件夹 cd "$(dirname "$0")" # 启动可执行文件 ./你的可执行文件名 # 保持终端窗口打开(可选) exec bash
- 打开终端,进入项目文件夹,执行命令给脚本添加可执行权限:
chmod +x 启动脚本.command
- 现在双击这个
.command文件,就能自动切换到项目目录并启动程序了。
两种方案都能满足「项目文件夹可放在任意位置」的要求,因为它们都是通过获取自身所在的目录来定位项目文件,完全不依赖固定路径。
内容的提问来源于stack exchange,提问作者chefjeff
相关产品推荐
相关产品推荐

