是啥导致 MS Visual Studio 无法识别构建错误?

Posted

技术标签:

【中文标题】是啥导致 MS Visual Studio 无法识别构建错误?【英文标题】:What causes MS Visual Studio to be unable to recognize build errors?是什么导致 MS Visual Studio 无法识别构建错误? 【发布时间】:2014-01-09 14:32:21 【问题描述】:

Visual Studio Express 2010 中,我通常只能构建一个程序,然后要进行任何更改,我必须将我的代码粘贴到一个新项目中。它会说构建成功,但随后我尝试运行它并收到一条错误消息,提示:

“这个项目已经过时了——你想建立它吗?”

然后我单击“是”,然后我收到另一条错误消息,指出存在构建错误,我必须从上次成功的构建继续。 有时我收到一条错误消息,而不是运行最后一次成功的构建,

"无法打开[程序目录]。系统找不到 指定文件。”

出于这个原因,我通常使用Visual Express 2012,但即便如此,它也会时不时地发生,似乎是随机的。一旦问题开始,就没有明显的方法可以解决它(重建和重新启动 Visual Studio 都具有相同的结果)。在Visual Studio Pro 2012 这似乎也发生了。

编辑:这是在我面前的那个(2010年版)的输出框中

1>------ Build started: Project: Lab01, Configuration: Debug Win32 ------
1>  Lab01.cpp
1>c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\system.core.dll : warning C4945: 'ExtensionAttribute' : cannot import symbol from 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\system.core.dll': as 'System::Runtime::CompilerServices::ExtensionAttribute' has already been imported from another assembly 'mscorlib'
1>          c:\windows\microsoft.net\framework\v4.0.30319\mscorlib.dll : see declaration of 'System::Runtime::CompilerServices::ExtensionAttribute'
1>          first seen type is used; re-order imported assemblies to use the current type
1>          This diagnostic occurred while importing type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
1>Lab01.cpp(28): error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::get(_Elem &)' : cannot convert parameter 1 from 'char [101]' to 'char &'
1>          with
1>          [
1>              _Elem=char,
1>              _Traits=std::char_traits<char>
1>          ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我猜它说那里有错误,但由于某种原因它告诉我“构建成功”......

【问题讨论】:

我想到了两件事:1 - 您是否对您尝试使用的项目和目录具有写入权限? 2 - 您是否使用 CMake 在 VS 中构建项目? 问题是什么? continue from the last successful build - 错误出现在View-&gt;Error List? (或者他们没有?)另外,我假设您在“运行”之前点击“构建”并在点击运行之前检查Error List? “重建”必须给出除“项目已过时”之外的其他错误。构建后还要检查Output窗口,它更详细。 写权限,我不太清楚你的意思,我只是开始一个“空白项目”并开始一个源代码(这是给学校的)。我对CMAKE不熟悉。编辑:哦,是的,我猜这里有线索.. egur 正在谈论对您的用户帐户的操作系统级文件访问权限。 【参考方案1】:

以下是查找和分析 Visual Studio 报告的错误的方法:

continue from the last successful build - 点击NO(几乎总是)。错误应显示在View-&gt;Error List 中。感到困惑时,请务必在构建后检查View-&gt;Output 窗口,它有很多相同的信息,但更详细。

rebuilding ... same result - 完全重建应该会给出除project is out of date 之外的其他错误。

Lab01.cpp(28): error C2664: - Lab01.cpp 的第 28 行和第 3 行上下会有帮助。

看起来你正在使用不正确的 std:: 流做一些事情,但我不知道没有看到代码是什么。 这应该在错误列表中

warning C4945: - 这是因为您在单个项目中混合使用 .net 4.0 和 4.5 以及(可能)混合使用 clr 和非 clr 代码。从已在各处选择正确的 .Net 库版本的新 CLR 项目重新创建可能会删除此警告。 (ExtensionAttribute 在 4.0 到 4.5 升级期间被移动)

这只是一个警告,所以没关系。

【讨论】:

以上是关于是啥导致 MS Visual Studio 无法识别构建错误?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2015 中重命名时导致“无法解决的冲突”的原因是啥?

是啥导致 Visual Studio 2017 中的文件名为空

openssl 包含 Visual Studio 2012 无法识别的路径

visual studio code 提示无法写入用户设置是啥意思,应该怎么解决,亲们吗

Visual Studio工具栏中无法选择调试设备

Visual Studio 证书错误“清单设计器无法导入证书”:是啥原因?