gpt4 book ai didi

c++ - getenv() 表示定义的环境变量仅在 Eclipse 中运行时未定义

转载 作者:太空狗 更新时间:2023-10-29 23:08:44 27 4
gpt4 key购买 nike

更新:Eclipse 是问题所在——它在控制台中运行。但我仍然希望它能在 Eclipse 中工作。

我的 printenv 输出包含以下行:

PROTCAD3DIR=/home/brent/Desktop/protCAD

但是从我试图运行的程序(在 Eclipse 中),我得到了输出:

Environment variable PROTCAD3DIR undefined.
Please set it properly and re-execute the program.

我在源中搜索了这条消息,找到了 1 个结果:

string PCGeneralIO::getEnvironmentVariable(const string& _evname)
{
const char* convEVName = _evname.c_str();
char* pEVString = getenv(convEVName);
if (pEVString == 0)
{ cout << "Environment variable " << _evname << " undefined." << endl;
cout << "Please set it properly and re-execute the program." << endl;
exit(1);
}
string EVstring = charToString(pEVString);
return EVstring;
}

我很确定这是在调用上面的函数:

string evname = "PROTCAD3DIR";
string path = PCGeneralIO::getEnvironmentVariable(evname);

那么是什么导致 getenv() 发现它未定义?

最佳答案

在 Eclipse“运行配置”中为您的程序检查“环境”选项卡。该列表应为空,并且应选中“将环境附加到 native 环境”。

编辑 如果这没有帮助,那么很可能 Eclipse 没有使用缺少的变量启动。通过使用 /usr/bin/printenv 作为程序创建一个新的“外部工具配置”来检查这一点。启动这个外部工具并检查输出。如果未提及缺少的变量,则必须完全指定

I added the definition and export within a file (.configuration or something of the like).

来自您的评论:-)

关于c++ - getenv() 表示定义的环境变量仅在 Eclipse 中运行时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8371187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com