这是从Qt内部获取环境变量的一些代码,但是,Qt的QProcessEnvironment::systemEnvironment()
似乎只反映了重启后的新环境变量。所以我在考虑使用getenv。
但是我得到了"error C2220: warning treated as error - no 'object' file generated"
:
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
const QString ENGINE_ROOT = env.value("ENGINE_ROOT", "") != "" ?
env.value("ENGINE_ROOT","") : QString(getenv("ENGINE_ROOT"));
不要告诉我像禁用/ WX或降低W4到W3的东西,我不想听到这个,我想确切知道是什么原因
没有'对象'文件生成
答案 0 :(得分:8)
“错误C2220:警告被视为错误 - 未生成'对象'文件”
错误已经回答了您的问题:
如果您想知道原始警告的含义,那么您需要向我们询问该警告。
答案 1 :(得分:3)
我将解决基本问题,而不是编译问题。
任何进程的环境变量在启动新进程时从其父进程的环境变量中复制。从那时起,唯一可以修改它们的就是你自己的过程。
实际上,这意味着转到Windows对话框以更改环境变量不会更改任何现有进程的值。这些更改将应用于explorer.exe
进程,然后从Explorer启动任何新进程。
有一种方法可以让Windows应用程序收到有关Explorer对环境变量所做更改的通知。有关详细信息,请参阅How to modify the PATH variable definitely through the command line in Windows。
答案 2 :(得分:3)
我刚遇到这个问题。混淆的真正原因是Microsoft Visual Studio列出了
错误C2220:警告被视为错误 - 没有'对象'文件生成
与警告分开 - 有时甚至之前警告 - 所以不会立即明显错误与列出的警告有关。
修复列出的所有警告以解决此问题。
答案 3 :(得分:0)
尝试更改变量名称 例如:
double height;
到
double Height;
为我工作