5

カスタム ビルド システム (ninja) で Qt Creator を使用しています。問題は、Qt Creator IDE に渡される $PATH 変数が完全にバニラであることです: /usr/bin:/bin:/usr/sbin:/sbin.

そのため、IDE ではなくターミナルでビルド手順を実行するか、bash -c '/path/to/ninja list of targets'代わりに書く必要があります。ninja list of targets

$PATH を設定するために、すべての既知のレシピを試しました。

  • ~/.bash_profile および ~/.profile
  • /etc/パス
  • /etc/paths.d/*
  • /etc/launchd.conf ( setenv PATH .....)
  • ~/Library/LaunchAgents/*.plist ( sh -c 'launchtcl setenv PATH $PATH:.....')
  • /Library/LaunchAgents/*.plist

launch agenes を使用するアイデアは、StackOverflow answerで説明されています。

どれも機能しません!私のカスタム .plist ファイル内の任意の環境変数は正しく設定されます - PATH 以外のすべて。echo xzxzxz=$XZXZXZ path=$PATH(簡単にテストしました: xzxzxz も起動エージェントに設定されているカスタム ビルド ステップを作成しました)。

興味深いことに、bash セッション ( '/Applications/Qt Creator.app/Contents/MacOS/Qt Creator' &) から Qt Creator を起動すると、bash 自体と同じように正しい PATH が取得されます。

また、興味深いのは、起動エージェントで割り当てられた PATH が後で上書きされることです。そこに と書いsh -c 'launchctl setenv PATH $PATH:/HELLOWORLD'たのですが、その HELLOWORLD が にありませんecho $PATH。そのため、競合状態が発生し、後で誰かが /etc/paths および /etc/paths.d から PATH を再構築します。

したがって:

  • OSX 10.10 で環境変数、特に PATH を設定する方法を網羅した最新の説明はありますか?
  • なぜPATHがバニラになるのですか?
  • Qt Creator で勝つ方法は?
4

1 に答える 1