抢先问这个问题,因为关于这个错误代码的信息不多。解决起来很简单,但由于没有给出正确的错误消息,我花了很多时间来诊断。
那到底发生了什么?
- 我在我的项目中添加了模板化函数
- 现在当项目编译时,弹出一条消息说
CL.exe
有问题需要关闭 - Visual Studio 中止编译,
错误 MSB6006:“CL.exe”退出,代码 1
问题是我的模板函数中存在语法错误。谁能猜到。
然而,很难找到,因为这些都没有被报道。请参阅我的回答,了解如何确定哪些功能有缺陷。
模板函数位于 header 中包含的 .cpp 中,但是,在 header 中完全定义它们没有任何区别。
// foo.h
template <typename T>
void foo();
...
#include "foo.cpp"
// foo.cpp
template <typename T>
void foo()
{
...
}
最佳答案
首先,您需要单独编译所有包含模板函数的 .cpp 文件(在项目资源管理器中选择一个,右键单击并“编译”)。
对我来说,第一个提示是其中一些已编译,而另一些 cl.exe
崩溃了。
下一步是创建一个只有一个函数的 bogus.cpp
文件,我在其中一个一个地添加了对我创建的每个模板化函数的调用。添加一个后:重新编译。一切顺利,直到我找到有缺陷的那个,现在 bogus.cpp
也崩溃了 cl.exe
。大奖。
最后的工作是修复语法错误,如果没有错误消息这很烦人,但是一旦完成,bogus.cpp
将再次编译。返回到那里添加更多函数调用,直到您涵盖所有内容。
希望我能帮上忙。
关于c++ - 错误 MSB6006 : "CL.exe" exited with code 1 after adding template function or class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33529570/