在问题上提出这个问题是因为没有太多关于此错误代码的信息。解决这个问题相当简单,但是我花了很多时间来诊断,因为没有给出正确的错误信息。
那发生了什么?
CL.exe
有问题需要关闭error MSB6006: "CL.exe" exited with code 1
问题是我的模板函数中的语法错误。谁能想到这一点。
然而,很难找到,因为这些没有得到报道。请参阅我的答案,了解如何确定哪些功能有缺陷。
模板化函数包含在标题中的.cpp中,但是,在标题中完全定义它们没有任何区别。
// foo.h
template <typename T>
void foo();
...
#include "foo.cpp"
// foo.cpp
template <typename T>
void foo()
{
...
}
答案 0 :(得分:2)
首先,您需要单独编译包含模板化函数的所有.cpp文件(在项目资源管理器中选择一个,右键单击并“编译”)。
对我来说,第一个提示是其中一些编译,而其他人cl.exe
崩溃了。
下一步是创建一个只有一个函数的bogus.cpp
文件,其中我逐个添加了对我创建的每个模板化函数的调用。添加一个后:重新编译。这很顺利,直到我遇到有缺陷的,现在bogus.cpp
也崩溃了cl.exe
。累积奖金。
最后一项工作是修复语法错误,这很烦人,没有错误消息,但一旦完成,bogus.cpp
将再次编译。返回到那里添加更多函数调用,直到你完成所有内容。
希望我能提供帮助。
答案 1 :(得分:0)
对我来说,解决此问题的原因是我有两个Visual Studio实例正在运行,而其中一个实例处于调试会话的中间,但我尝试编译另一个实例。停止调试会话可以为我解决此错误。
答案 2 :(得分:0)
使用简单表单和VS2019遇到相同的问题。这似乎不一定与代码问题有关,但可能与VS本身有关。