【问题标题】:How to fix 'sh: brew: command not found' in Xcode?如何修复 Xcode 中的“sh: brew: command not found”?
【发布时间】:2019-09-14 04:13:28
【问题描述】:

我正在 Xcode 中制作一个命令行工具,并且想用我的 C++ 代码调用终端命令。

我发现system() 函数可以运行终端命令。而且我知道我想要的命令在我的终端中工作。但是当我在 Xcode 中使用 system() 调用这些命令时,这些命令的工作方式不同。

例如,我尝试在 Xcode 中调用 brew 命令。

system("brew");

我希望输出与我在终端中输入 brew 时的输出相同:

Example usage:
  brew search [TEXT|/REGEX/]
  ...etc

但 Xcode 中的实际输出是sh: brew: command not found

为什么system() 的行为与终端不同?我应该使用其他功能吗?

【问题讨论】:

  • /usr/local/bin,其中brew 可能不在PATH 环境变量中。尝试使用其绝对路径运行它:/usr/local/bin/brew
  • @cfillion 谢谢这工作!你知道如何将它添加到 XCode 中,这样我就不需要每次都写绝对路径了吗?
  • 还有@cfillion,您可以添加您的评论作为答案,以便我可以将其标记为已解决吗? ty

标签: c++ xcode terminal


【解决方案1】:

system 不会加载您的 shell 的配置文件,这就是将 /usr/local/bin 添加到 PATH 环境变量的位置。
(OS X 默认不包含该目录。)

最简单的解决方案可能是使用完整路径,或者从终端启动 XCode,以便它继承你的 shell 的 PATH

(有关PATH 工作原理和一般环境变量的更多详细信息,可以在任何 Unix-y 系统介绍中找到。)

【讨论】:

  • 太棒了!我尝试了@cfillion 的绝对路径,它奏效了。有没有办法可以将它添加到 XCode 中的 PATH 变量中?
  • 这取决于您的系统版本。有关建议,请参阅here。 (我不知道现在答案的效果如何;多年来我一直觉得没有必要这样做,)
猜你喜欢
  • 1970-01-01
  • 2020-09-26
  • 1970-01-01
  • 2016-02-24
  • 2011-12-18
  • 2015-09-04
  • 2018-05-30
  • 2022-12-21
  • 2017-01-29
相关资源
最近更新 更多