0

先发制人地问这个问题,因为没有太多关于这个错误代码的信息。解决起来相当琐碎,但是由于没有给出适当的错误消息,因此花费了我很多时间进行诊断。

所以发生了什么事?

  • 我在我的项目中添加了模板函数
  • 现在当项目编译时,会弹出一条消息说CL.exe有问题需要关闭
  • Visual Studio 中止编译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() 
{
...
}
4

3 回答 3

2

首先,您需要分别编译所有包含模板化函数的 .cpp 文件(在项目资源管理器中选择一个,右键单击并“编译”)。

对我来说,第一个提示是它们中的一些编译了,而另一些则cl.exe崩溃了。

下一步是创建一个bogus.cpp只有一个函数的文件,我在其中一个接一个地添加对我创建的每个模板化函数的调用。添加后:重新编译。这很顺利,直到我找到有缺陷的那个,现在bogus.cpp也崩溃了cl.exe。大奖。

最后一项工作是修复语法错误,这很烦人,但没有错误消息,但一旦完成,bogus.cpp将再次编译。返回到那里添加更多的函数调用,直到你涵盖了所有内容。

希望我能帮上忙。

于 2015-11-04T18:53:48.637 回答
0

为我解决的问题是我运行了两个 Visual Studio 实例,其中一个正在调试会话中,我尝试编译另一个实例。停止调试会话为我修复了这个错误。

于 2019-07-10T23:43:53.277 回答
0

使用简单的表单和 VS2019 遇到了同样的问题。这似乎不一定与代码问题有关,但可能与 VS 本身有关。

  1. 重新签出代码,构建OK。
  2. 向现有表单添加了新选项卡,CL.exe 退出并出现代码 1 错误。
  3. 还原代码并添加更改,直到出现错误然后无法清除错误,清除构建输出目录后的事件。
  4. 完全还原构建 - CL.exe 退出并出现代码 1 错误。
  5. 将 VS 更新到 16.4.0 并重新启动 PC - 项目构建正常。
于 2019-12-04T11:10:04.427 回答