我遇到了几次遇到主题行中列出的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.
#include <stdbool.h>
int main()
{
bool testbool;
if (testbool == true) {
}
}
下面是另一个示例,但没有指示原因:
// Error MSB6006 "CL.exe" exited with code 2.
bool testFun()
{
}
int main()
{
bool testBool;
testBool = testFun();
}
另一个示例,使用具有相同问题的
int
:// Error MSB6006 "CL.exe" exited with code 2.
bool testFun()
{
}
int main()
{
int testInt;
testInt = testFun();
}
当我尝试打印尚未初始化的int时,也出现了错误。该问题已在this question中解决,但直到发布此问题我才看到答案。另外,如果您仅打印字符串,也不会出现问题。
我将在下面回答问题。
更新18/10/19
我将代码更改为
#include stdbool.h
。得到了相同的结果。进一步查看时,一条C4716错误消息闪烁了几秒钟,然后才被MSB6006消息覆盖。因此,问题不在于编译器找不到问题,而仅仅是显示问题。还包括一个具有相同问题的
int
的示例,正如我所说,该问题已在上一个问题中得到解决。 最佳答案
在第一种情况下,请按其说明进行操作并初始化testBool
。
在第二种情况下,对我来说不明显的是,您无法在函数声明中指定返回值,然后无法返回任何内容。或者,如果您有一个return
语句但未指定值,则会收到消息Error C2561 'testFun': function must return a value
告诉您如何解决此问题,而不是MSB6006错误。
希望这对某人有帮助。
关于c - VS 2019中使用代码2退出的MSB6006“CL.exe”的原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57198295/