我遇到了几次遇到主题行中列出的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中得到解决,但直到发布此问题我才看到答案。另外,如果只打印字符串,也不会出现问题。
我将回答以下问题。
答案 0 :(得分:0)
在第一种情况下,请执行其操作并初始化testBool
。
在第二种情况下,对我来说不明显,您不能在函数声明中指定返回值,然后无法返回任何内容。或者,如果您有一个return
语句但未指定值,则会收到消息Error C2561 'testFun': function must return a value
来告诉您如何解决此问题,而不是MSB6006错误。
希望这对某人有帮助。
答案 1 :(得分:0)
不,您在这里找不到原因。该警告本身并不是导致构建失败的原因。看来您仍然缺少一些错误消息。我相信MSB6006错误代码仅表示编译器退出时出现错误代码。
如果这确实是C程序,则它是无效的,因为bool
是typedef
的{{1}},并且仅通过_Bool
ing #include
来引入似乎不存在。关于那个
答案 2 :(得分:-1)
尝试在您的main中添加返回值,但不是在main中却遇到了这个问题,但是当我在non void函数中忘记了返回值时。希望对您有帮助