我有一个环境变量,已~/.profile
使用以下行进行设置:
导出 APPDIR=/路径/到/目录
当我登录并加载终端时,我可以验证变量是否已设置:
$ printenv APPDIR
/路径/到/目录
我正在尝试从 Qt 应用程序中访问该变量:
QString appdir = getenv("APPDIR");
QTWARNING("目录:|" + appdir + "|");
弹出的警告窗口显示:
目录:||
这是怎么回事?我是否误解了 Ubuntu 中环境变量的工作方式?
这是 Ubuntu 11.10 x86 上的 C++/Qt 应用程序。
答案1
~/.profile
如果您从终端启动该程序,则会设置环境变量;默认情况下,在设置 GUI 时不会运行 Linux 桌面环境,因此其中的设置仅在终端中可用。请参阅如何在 Unity 会话中设置环境变量?用于设置 GUI 环境的环境变量(这不是 Unity 特有的,而是适用于任何 X11 会话)。