0

I use Qt Creator as my main IDE for cross-platform C++ application development. In doing so I had set it up so that it depends on a set of environment variables that I define in .bashrc.

On Linux (Ubuntu specifically) that works fine but on OSX Lion I cannot get it to work. I have defined my variables in .bashrc and .bashrc is sourced inside .bash_profile. The variables are defined when I do echo $VAR inside the terminal but when I open the IDE (from Dock) it does not recognize the variables. Does Dock not use bash to launch applications?

1 Answer 1

1

Apps launched from the dock or desktop or any GUI do not use bash. They are all children of the workspace (the loginwindow process).

To set the environment variables you need to edit ~/.MacOSX/environment.plist which is read when you login. This is a text plist and you need to set a key element to the name of the environment variable it uses and the next string element to its value. See Apple's documentation for Setting environment variables for user processes

e.g. mine is for WAFDIR and PATH

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>WAFDIR</key>
  <string>/Users/mark/src/third_party/git-svn/waf</string>

  <key>PATH</key>
  <string>/Users/mark/bin:/Users/mark/env/bin:/Users/mark/usr/local/bin:/usr/local/bin:/opt/local/bin:/usr/local/git/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/usr/libexec/binutils:</string>
</dict>
</plist>
3
  • Thanks. I just learnt I could also modify /etc/launchd.conf or use launchctl inside my .bashrc file. Any difference between those methods and using the one you mentioned?
    – mmirzadeh
    Jun 26, 2012 at 8:19
  • Where did you learn from so we can see the context. Yes /etc is global and could get overwirren by Apple, and launchctl in your .bashrc I think launces the app from terminal but you need to go to terminal to do that so might as well use open or the full path the the executable in the app. Also this is the Apple supported way
    – mmmmmm
    Jun 26, 2012 at 8:21
  • here: stackoverflow.com/a/3756686/928594. This seems to work for now when I open applications from the dock but I might switch
    – mmirzadeh
    Jun 26, 2012 at 8:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .