如何在Xcode中修复'sh:brew:command not found'?

问题描述 投票:0回答:1

我正在Xcode中创建一个命令行工具,并希望用我的C ++代码调用终端命令。

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

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

system("brew");

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

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

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

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

c++ xcode terminal
1个回答
1
投票

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

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

(关于PATH如何工作以及一般环境变量的更多细节可以在Unix-y系统的任何介绍中找到。)

© www.soinside.com 2019 - 2024. All rights reserved.