gpt4 book ai didi

xcode - 终端中的 "./"和 "open"有什么区别,如何从 XCode 运行 Unix 可执行文件?

转载 作者:行者123 更新时间:2023-12-01 10:45:35 31 4
gpt4 key购买 nike

所有这些我都是新手,请原谅我的无知..

我有一个 unix 可执行文件。我使用命令运行终端:open programname --args argument 并且它响应找不到资源文件(这是我传递的参数。)

我试着写:./programname argument 并且它有效。

首先,我想知道这两种方法的区别,以及为什么第一种方法不起作用,而第二种方法起作用。

我现在遇到的问题是我无法在 XCode 中执行此操作。当可执行文件运行时,它说找不到资源文件。我通过 cmd+i 将可执行文件中的参数传递给可执行文件,并将资源文件添加为参数。

感谢您的潜在回答..

最佳答案

open 与双击 Finder 中的某项完全相同。因此,如果您在 UNIX 可执行文件上使用它,那么可执行文件将启动,但当前工作目录不会是可执行文件所在的位置,也不一定有任何用处。但是,您也可以使用它来打开 .doc 文件或任何其他文件类型、在 Finder 中打开目录、在 Finder 中打开 URL 等。

使用 ./name 启动可执行文件是运行该程序的正常 UNIX 方式。当前工作目录将在您输入时所在的任何位置。因此,这将与可执行文件所在的目录相同(除非您从磁盘上的其他位置启动,例如,通过进入目录并使用 ../name 启动可执行文件)。

您可能想要做的是编写代码来获取可执行文件的路径,并查找与该路径相关的指定文件?你没有说你正在使用什么语言,令人恼火的是,这不是 POSIX 规范中的内容,因此它因操作系统而异。

如果您使用的是 C 语言或任何可以调用 C 语言的语言(例如 C++、Objective-C 等),则使用 NSGetExecutablePath(忽略 Google 希望在其前面加下划线的做法,例如 this site)很可能是你想要的。如果您使用的是 Objective-C,那么 NSString 有一些自动附加路径的方法。

关于xcode - 终端中的 "./"和 "open"有什么区别,如何从 XCode 运行 Unix 可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694062/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com