首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >引起MSB6006 "CL.exe“的原因之一是VS 2019年代码2退出

引起MSB6006 "CL.exe“的原因之一是VS 2019年代码2退出
EN

Stack Overflow用户
提问于 2019-07-25 09:11:30
回答 3查看 185关注 0票数 0

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

在第一种情况下,至少它告诉你原因。

代码语言:javascript
运行
复制
//  Warning C6001   Using uninitialized memory 'testbool'.
//  Error   MSB6006 "CL.exe" exited with code 2.

#include <stdbool.h>

int main()
{
    bool testbool;

    if (testbool == true) {

    }
}

以下是另一个例子,但没有说明原因:

代码语言:javascript
运行
复制
//  Error   MSB6006 "CL.exe" exited with code 2.
bool testFun()
{

}

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

另一个例子是,使用具有相同问题的int

代码语言:javascript
运行
复制
//  Error   MSB6006 "CL.exe" exited with code 2.
bool testFun()
{

}

int main()
{
    int testInt;
    testInt = testFun();
}

当我试图打印一个未初始化的int时,我也得到了错误。这个问题已经在this question中解决了,但是直到我发布了这篇文章,我才看到了这个答案。而且,如果你只是打印一个字符串,你就不会遇到这个问题。

我将回答以下问题。

更新08/10/19

我将代码更改为#include stdbool.h。得到了同样的结果。进一步研究它时,C4716错误消息在被MSB6006消息覆盖之前会闪烁一小部分秒。所以问题不是编译器找不到问题,而是显示的问题。

还包括一个int的例子,它具有相同的问题,就像我说过的,这个问题在以前的问题中已经解决了。

EN

回答 3

Stack Overflow用户

发布于 2019-07-25 09:15:23

在第一种情况下,按它说的做并初始化testBool

在第二种情况下,我并不认为您不能在函数声明中指定返回值,然后无法返回任何内容。或者,如果您有一个return语句而没有指定一个值,那么您将得到消息Error C2561 'testFun': function must return a value来告诉您如何修复这个问题,而不是MSB6006错误。

希望这能帮上忙。

票数 0
EN

Stack Overflow用户

发布于 2019-08-09 04:15:46

不,你在这里没有理由。此警告并不是生成失败的原因。而且你似乎仍然遗漏了一些错误信息。我认为MSB6006错误代码仅仅意味着编译器与错误代码一起退出。

如果这确实是一个C程序,那么它是无效的,因为bool_Booltypedef,并且只由似乎不存在的#includeing <stdbool.h>引入。在这方面应该有一个错误

票数 0
EN

Stack Overflow用户

发布于 2019-08-09 00:48:58

尝试将一个返回添加到您的main,我遇到了这个问题,不是main,而是当我忘记了一个非空函数中的返回时。希望它能帮上忙

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57198295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档