Как исправить 'sh: brew: команда не найдена' в Xcode? - PullRequest
0 голосов
/ 24 апреля 2019

Я делаю инструмент командной строки в XCode и хочу вызывать команды терминала с моим C ++ кодом.

Я обнаружил, что функция system() может выполнять команды терминала.И я знаю, что команды, которые я хочу, работают в моем терминале.Но эти команды не работают одинаково, когда я вызываю их с system() в Xcode.

Например, я попытался вызвать команду brew в Xcode.

system("brew");

Я ожидаювывод будет таким же, как когда я набираю brew в моем терминале:

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

, но фактический вывод в Xcode равен sh: brew: command not found.

Почему system()действует не так, как терминал?Должен ли я использовать другую функцию?

1 Ответ

1 голос
/ 24 апреля 2019

system не загружает файлы конфигурации вашей оболочки, и именно здесь /usr/local/bin добавляется к переменной окружения PATH.
(Этот каталог не включен по умолчанию в OS X.)

Простейшим решением, вероятно, является либо использование полного пути, либо запуск XCode из терминала, чтобы он наследовал PATH.

вашей оболочки.

(Более подробную информацию о том, как работает PATH и о переменных среды в целом, можно найти в любом введении в системы Unix-y.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...