更新:Eclipse是問題 - 它是從控制檯運行的。但我仍然喜歡它在Eclipse中工作。getenv()表示只有在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()發現它爲undefined?
您的評論你運行在同一個shell程序? – Beginner
它有可能在不同的用戶環境下運行? – steve
變量是否已導出? –