5

我将 Qt Creator 与自定义构建系统(忍者)一起使用。问题是传递给 Qt Creator IDE 的 $PATH 变量绝对是 vanilla: /usr/bin:/bin:/usr/sbin:/sbin

所以我必须编写bash -c '/path/to/ninja list of targets'而不是仅仅ninja list of targets在终端中执行构建步骤,而不是在 IDE 中。

我尝试了所有已知的方法来设置 $PATH。

  • ~/.bash_profile 和 ~/.profile
  • /etc/路径
  • /etc/paths.d/*
  • /etc/launchd.conf ( setenv PATH .....)
  • ~/Library/LaunchAgents/*.plist ( sh -c 'launchtcl setenv PATH $PATH:.....')
  • /库/LaunchAgents/*.plist

StackOverflow 回答中描述了使用启动agenes 的想法。

没有工作!我的自定义 .plist 文件中的任何任意环境变量都正确设置 - 除了 PATH 之外的任何环境变量。(我已经简单地对其进行了测试:创建了一个自定义构建步骤echo xzxzxz=$XZXZXZ path=$PATH,其中 xzxzxz 也在我的启动代理中设置)。

有趣的是,如果我从 bash 会话 ( '/Applications/Qt Creator.app/Contents/MacOS/Qt Creator' &) 启动 Qt Creator,它会获得正确的 PATH,与 bash 本身相同。

有趣的是,分配给启动代理的 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

2

您可以在 Qt Creator 中更新项目构建环境的路径。

较新的版本(> 3.3 AFAIR,肯定是 3.4)允许在每个套件中设置环境覆盖,以便您可以为所有使用它们的项目使用它。

于 2015-06-17T12:45:55.497 回答