У меня есть переменная окружения, которую я установил в ~/.profile
со следующей строкой:
export APPDIR = / path / to / dir
blockquote>Когда я вхожу в систему и загружаю терминал, я могу убедиться, что переменная установлена:
$ printenv APPDIR
/ path / to / dir
blockquote>Я пытаюсь получить доступ к этой переменной из приложения Qt:
QString appdir = getenv ("APPDIR");
QTWARNING ("dir: |" + appdir + "|");
blockquote>Появится всплывающее окно с предупреждением:
dir: ||
blockquote>Что здесь происходит? Я неправильно понимаю, как переменные окружения работают в Ubuntu?
Это с приложением C ++ / Qt в Ubuntu 11.10 x86.
Если вы запустите программу из терминала, будет установлена переменная окружения; по умолчанию среды рабочего стола Linux не запускаются ~/.profile
при настройке графического интерфейса пользователя, поэтому настройки из него доступны только в терминалах. См. Как установить переменную среды в сеансе Unity? для установки переменных среды для среды графического интерфейса (это не относится только к Unity, но работает для любого сеанса X11).