【发布时间】:2014-04-08 20:50:07
【问题描述】:
我有一个 C 程序,它打印每个环境变量,其名称由标准输入给出。它打印 $PATH、$USER 等变量,但看不到我在 Linux shell 中定义的环境变量...例如,在 ~.bashrc 中我导出了 MYTEST=test_is_working,然后我获取了 bashrc(来源〜/ .bashrc)。 我希望程序使用 getenv 返回 test_is_working 但它没有。
#include <QCoreApplication>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
char* my_env= getenv("MYTEST");
if(my_env!=NULL){
printf("my env is : %s \n", my_env);
}
else {
printf("can't find env \n");
}
return a.exec();
}
返回:找不到环境
当我打开终端并输入“env”时,我有 MYTEST=test_is_working
我看到一个类似的帖子:Using getenv function 解决方案是从 shell 启动程序。但我不能,因为我在 Qtcreator 中运行和调试。
我不知道我哪里错了,谁能给我解释一下?
谢谢
【问题讨论】:
-
如果从 shell 运行 QtCreator 会怎样?
-
请注意,您可以在 Qt creator 中的“运行设置”对话框的某处设置环境变量。
-
所以是的,如果我从终端启动 qtcreator 就可以了,不知道为什么我没想到,谢谢