如何在 Mac OSX 中设置可执行程序的工作目录
How to set the working directory of an executable program in Mac OSX
我在 Xcode 中创建了一个 C++ 项目,它在 Xcode 环境中成功构建并运行了一个程序。该程序依赖于存在于其当前工作目录中的几个文件来访问。在 Xcode 环境之外,当我双击可执行文件时,我收到一条消息,通知我终端退出当前工作目录。
当前工作目录退出两次
[1]: https://i.stack.imgur.com/EZ5kc.png
退出消息后,我当前的工作目录导致 /Users/chefjeff/
根据其他判断 post:How to change default working directory on Mac OS X?
可能没有一个简单的解决方案来双击可执行文件以便它在当前目录中打开,但我仍然需要一个解决方案来以某种方式在 Mac 上使用 GUI 来打开其工作目录中的文件。
编辑:
项目文件夹 CultGame 必须能够存在于用户文件系统中的任何位置,并且其打包文件和可执行文件仍然有效。
我是这样解决的:
我无法将双击该程序的默认目录更改为 运行 它将启动。
- 我可以使用 chdir() 函数来移动目录。我在程序开始后使用 chdir() 移动到根目录并在 Users/Username 中启动了我。更多关于 chdir 的信息:https://www.geeksforgeeks.org/chdir-in-c-language-with-examples/
- 我使用 _NSGetExecutablePath() 来获取当前正在执行的文件所在的目录。更多信息请参见:https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/dyld.3.html
- 从 root 开始,我使用 chdir() 导航到我使用 _NSGetExecutablePath() 获得的当前执行文件的路径。
稍后我会用代码示例更新我的答案。希望这对您有所帮助!
我在 Xcode 中创建了一个 C++ 项目,它在 Xcode 环境中成功构建并运行了一个程序。该程序依赖于存在于其当前工作目录中的几个文件来访问。在 Xcode 环境之外,当我双击可执行文件时,我收到一条消息,通知我终端退出当前工作目录。
当前工作目录退出两次 [1]: https://i.stack.imgur.com/EZ5kc.png
退出消息后,我当前的工作目录导致 /Users/chefjeff/
根据其他判断 post:How to change default working directory on Mac OS X?
可能没有一个简单的解决方案来双击可执行文件以便它在当前目录中打开,但我仍然需要一个解决方案来以某种方式在 Mac 上使用 GUI 来打开其工作目录中的文件。
编辑:
项目文件夹 CultGame 必须能够存在于用户文件系统中的任何位置,并且其打包文件和可执行文件仍然有效。
我是这样解决的:
我无法将双击该程序的默认目录更改为 运行 它将启动。
- 我可以使用 chdir() 函数来移动目录。我在程序开始后使用 chdir() 移动到根目录并在 Users/Username 中启动了我。更多关于 chdir 的信息:https://www.geeksforgeeks.org/chdir-in-c-language-with-examples/
- 我使用 _NSGetExecutablePath() 来获取当前正在执行的文件所在的目录。更多信息请参见:https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/dyld.3.html
- 从 root 开始,我使用 chdir() 导航到我使用 _NSGetExecutablePath() 获得的当前执行文件的路径。
稍后我会用代码示例更新我的答案。希望这对您有所帮助!