C ++没有生成'object'文件

时间:2014-01-17 03:16:18

标签: c++ qt getenv

这是从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的东西,我不想听到这个,我想确切知道是什么原因

  

没有'对象'文件生成

4 个答案:

答案 0 :(得分:8)

  

“错误C2220:警告被视为错误 - 未生成'对象'文件”

错误已经回答了您的问题:

  1. 已生成警告。
  2. 因为您已告知编译器将警告视为错误,所以发生错误
  3. 由于发生错误,编译器未生成目标文件。
  4. 如果您想知道原始警告的含义,那么您需要向我们询问该警告。

答案 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;

为我工作