应用程序内部的环境变量为空

应用程序内部的环境变量为空

我有一个环境变量,已~/.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 会话)。

相关内容