错误 MSB6006:"CL.exe" 在添加模板函数或 class 后以代码 1 退出
error MSB6006: "CL.exe" exited with code 1 after adding template function or class
抢先问这个问题,因为关于这个错误代码的信息不多。解决起来很简单,但由于没有给出正确的错误信息,我花了很多时间来诊断。
所以发生了什么事?
- 我在我的项目中添加了模板化函数
- 现在项目编译的时候,弹出一个信息说
CL.exe
有问题需要关闭
- Visual Studio 使用
error MSB6006: "CL.exe" exited with code 1
中止编译
问题是我的模板函数中存在语法错误。谁能猜到。
然而,很难找到,因为这些都没有被报道。请参阅我的回答,了解如何确定哪些功能有缺陷。
模板函数位于 header 中包含的 .cpp 中,但是,在 header 中完全定义它们没有任何区别。
// foo.h
template <typename T>
void foo();
...
#include "foo.cpp"
// foo.cpp
template <typename T>
void foo()
{
...
}
首先,您需要单独编译所有包含模板函数的 .cpp 文件(select 在项目资源管理器中,右键单击并 "compile")。
对我来说,第一个提示是其中一些已编译,而另一些 cl.exe
崩溃了。
下一步是创建一个只有一个函数的 bogus.cpp
文件,我在其中一个一个地添加了对我创建的每个模板化函数的调用。添加一个后:重新编译。一切顺利,直到我找到有缺陷的那个,现在 bogus.cpp
也崩溃了 cl.exe
。大奖。
最后的工作是修复语法错误,如果没有错误消息,这很烦人,但是一旦完成,bogus.cpp
将再次编译。 Return 在那里添加更多的函数调用,直到你涵盖所有内容。
希望能帮到你。
为我解决的问题是我有两个 Visual Studio 运行 的实例,其中一个在调试会话期间,我尝试编译另一个实例。停止调试会话为我修复了这个错误。
简单表单和VS2019遇到同样的问题。这似乎不一定与代码问题有关,但可能与 VS 本身有关。
- 重新签出代码,构建正常。
- 向现有表单添加了新选项卡,CL.exe退出并出现代码 1 错误。
- 还原代码并添加更改,直到出现错误,然后无法清除错误,清除构建输出目录后的事件。
- 完全还原构建 - CL.exe 退出并出现代码 1 错误。
- 已将 VS 更新到 16.4.0 并重新启动 PC - 项目构建正常。
抢先问这个问题,因为关于这个错误代码的信息不多。解决起来很简单,但由于没有给出正确的错误信息,我花了很多时间来诊断。
所以发生了什么事?
- 我在我的项目中添加了模板化函数
- 现在项目编译的时候,弹出一个信息说
CL.exe
有问题需要关闭 - Visual Studio 使用
error MSB6006: "CL.exe" exited with code 1
中止编译
问题是我的模板函数中存在语法错误。谁能猜到。
然而,很难找到,因为这些都没有被报道。请参阅我的回答,了解如何确定哪些功能有缺陷。
模板函数位于 header 中包含的 .cpp 中,但是,在 header 中完全定义它们没有任何区别。
// foo.h
template <typename T>
void foo();
...
#include "foo.cpp"
// foo.cpp
template <typename T>
void foo()
{
...
}
首先,您需要单独编译所有包含模板函数的 .cpp 文件(select 在项目资源管理器中,右键单击并 "compile")。
对我来说,第一个提示是其中一些已编译,而另一些 cl.exe
崩溃了。
下一步是创建一个只有一个函数的 bogus.cpp
文件,我在其中一个一个地添加了对我创建的每个模板化函数的调用。添加一个后:重新编译。一切顺利,直到我找到有缺陷的那个,现在 bogus.cpp
也崩溃了 cl.exe
。大奖。
最后的工作是修复语法错误,如果没有错误消息,这很烦人,但是一旦完成,bogus.cpp
将再次编译。 Return 在那里添加更多的函数调用,直到你涵盖所有内容。
希望能帮到你。
为我解决的问题是我有两个 Visual Studio 运行 的实例,其中一个在调试会话期间,我尝试编译另一个实例。停止调试会话为我修复了这个错误。
简单表单和VS2019遇到同样的问题。这似乎不一定与代码问题有关,但可能与 VS 本身有关。
- 重新签出代码,构建正常。
- 向现有表单添加了新选项卡,CL.exe退出并出现代码 1 错误。
- 还原代码并添加更改,直到出现错误,然后无法清除错误,清除构建输出目录后的事件。
- 完全还原构建 - CL.exe 退出并出现代码 1 错误。
- 已将 VS 更新到 16.4.0 并重新启动 PC - 项目构建正常。