是啥导致 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->Error List
? (或者他们没有?)另外,我假设您在“运行”之前点击“构建”并在点击运行之前检查Error List
? “重建”必须给出除“项目已过时”之外的其他错误。构建后还要检查Output
窗口,它更详细。
写权限,我不太清楚你的意思,我只是开始一个“空白项目”并开始一个源代码(这是给学校的)。我对CMAKE不熟悉。编辑:哦,是的,我猜这里有线索..
egur 正在谈论对您的用户帐户的操作系统级文件访问权限。
【参考方案1】:
以下是查找和分析 Visual Studio 报告的错误的方法:
continue from the last successful build
- 点击NO(几乎总是)。错误应显示在View->Error List
中。感到困惑时,请务必在构建后检查View->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 无法识别的路径