错误MSB6006:“ CL.exe”退出,代码为2

tia*_*c88 14 c++ visual-studio-2010

我正在用Visual C ++编写,并且在编译时会出现此错误:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(147,5): error MSB6006: "CL.exe" terminato con il codice 2.
Run Code Online (Sandbox Code Playgroud)

有人知道为什么吗?

提前致谢!

Mic*_*ers 7

当我通过以下方法忘记return语句时,遇到了相同的错误:

char SpiRAM::write_byte(int address, char data_byte)
{
    assert(address >= 0);
    assert(address < SRAM_SIZE);

    _sram[address] = data_byte;

    return data_byte;
}
Run Code Online (Sandbox Code Playgroud)

  • 到目前为止,在Visual Studio中忘记return语句时,仍然会出现此错误。 (3认同)

Sah*_*hbi 7

实际上,您可以看到正确的错误消息,而不是Microsoft的任意错误代码。但是由于错误列表总是在出现错误时被强制显示,因此并不是很明显。该选项卡旁边Error List是另一个选项卡Output,它显示原始错误输出。自从我使用2019年以来,我不确定该选项卡是否在所有版本中都存在,但是在较旧的版本中可能总有类似的东西。也许使用了不同的名称,或者是一个完全独立的窗口而不是与分组Error List

对于另一个回答者,此处将显示确切的选项卡:error C4700: uninitialized local variable 'm' used

这将使他免于挖掘所有代码的麻烦。=]

而且,如果您忘记了需要返回值的函数的返回值,则会看到: error C4716: 'foo': must return a value


Ali*_*mas 6

发生这种情况的原因多种多样:

1)我忘记在非空函数中添加return语句。

2)我试图使用未初始化的指针。

3)我写了像for(int i = i; ...)的循环,而不是for(int i = 0; ...)

您可以检查这些代码,这可能会有所帮助。


小智 -4

你应该检查你的源文件;编译器可能找不到源文件,或者您输入了错误的名称。例如,写作#include <isotream>而不是#include <iostream>会导致问题。