VS 2019中使用代码2退出的MSB6006“ CL.exe”的原因

时间:2019-07-25 09:11:30

标签: c visual-studio

我遇到了几次遇到主题行中列出的CL.exe错误的情况。我对MSB6006错误的理解是,这些错误是由Visual Studio编译器编辑例程中的错误引起的。我不知道这很重要,但是我正在使用VS 2019 Community Edition版本16.1.6。

在第一种情况下,至少可以告诉您原因。

//  Warning C6001   Using uninitialized memory 'testbool'.
//  Error   MSB6006 "CL.exe" exited with code 2.

int main()
{
    bool testbool;

    if (testbool == true) {

    }
}

下面是另一个示例,但没有说明原因:

//  Error   MSB6006 "CL.exe" exited with code 2.
bool testFun()
{

}

int main()
{
    bool testBool;
    testBool = testFun();
}

当我尝试打印尚未初始化的int时,也出现了错误。该问题已在this question中得到解决,但直到发布此问题我才看到答案。另外,如果只打印字符串,也不会出现问题。

我将回答以下问题。

3 个答案:

答案 0 :(得分:0)

在第一种情况下,请执行其操作并初始化testBool

在第二种情况下,对我来说不明显,您不能在函数声明中指定返回值,然后无法返回任何内容。或者,如果您有一个return语句但未指定值,则会收到消息Error C2561 'testFun': function must return a value来告诉您如何解决此问题,而不是MSB6006错误。

希望这对某人有帮助。

答案 1 :(得分:0)

不,您在这里找不到原因。该警告本身并不是导致构建失败的原因。看来您仍然缺少一些错误消息。我相信MSB6006错误代码仅表示编译器退出时出现错误代码。

如果这确实是C程序,则它是无效的,因为booltypedef的{​​{1}},并且仅通过_Bool ing #include来引入似乎不存在。关于那个

应该有一个错误

答案 2 :(得分:-1)

尝试在您的main中添加返回值,但不是在main中却遇到了这个问题,但是当我在non void函数中忘记了返回值时。希望对您有帮助