gpt4 book ai didi

c++ - Visual Studio 不断重建和智能感知中断

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:38:32 25 4
gpt4 key购买 nike

问题

1) Visual Studio 会不断重建每个项目,而不管对源代码所做的更改。2)智能感知也坏了。每个命令都出现“没有可用的附加信息”错误3) Visual Studio 说有一个错误 E1696 无法打开源文件“CURRENTLYOPENSOURCEFILEINCAPS.CPP”,尽管无论如何都能成功构建项目。错误图标不同于导致构建失败的错误。

我做了什么

我已启用诊断输出。对于零检查 cmake 目标,它找不到我检查过的 generate.stamp.rule 在构建之前确实存在并且没有被删除和重新生成并且文件路径是正确的。各个项目都有类似的文件,但 visual studio 说它们丢失了。

我浏览了许多堆栈溢出帖子以使智能感知再次运行,但没有任何效果。使用解决方案资源管理器打开的所有文件在导航栏中都有“(全局范围)”,其中曾经有一个文件路径。

我使用 msbuild 进行构建,它显示“正在创建“x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild”,因为指定了“AlwaysCreate”。我不知道为什么要指定 AlwaysCreate。我读过,如果 #include 试图包含不存在的东西但我不明白它是如何编译的,就会发生这种情况 - 无论如何,这是一个很大的代码库,如果这是肯定检查的原因以前提交的这不是问题的地方应该修复它 - 但没有。

我有一个源代码外构建,所以我尝试删除它并重新制作所有内容,以便清除所有缓存变量。

我已尝试将所有设置重置为出厂设置。

我已禁用并发构建。

我在管理员模式下运行。

我已经删除了我的存储库中的所有内容并构建了输出,并在发生这种情况之前重新克隆并检查了过去的提交。

我试过将源代码复制到另一个驱动器和驱动器上不同级别的文件夹深度。

我已经尝试卸载并重新安装 visual studio 两次。

可以确认创建新的虚拟项目没有列出的 3 个问题中的任何一个。

我尝试了删除所有内容、重置 vs、重新安装 vs、克隆以前工作的提交、cmaking、在管理员中构建 vs、构建 vs 在管理员中,它仍然有所有 3 个问题。

诊断输出中的第一个故障点

1>------ Up-To-Date check: Project: ZERO_CHECK.vcxproj, Configuration: Debug x64 ------
1>Project is not up-to-date: build input 'e:\blabla\blabuilddir\cmakefiles\66f04b81c84059a8a3158e97cbfec9b8\generate.stamp.rule' is missing.

事实并非如此。

在决定/执行 AlwaysCreate 之前的更多输出

>Done building target "_HandlePackageFileConflicts" in project "ALL_BUILD.vcxproj".
16>Target "ResolveAssemblyReferences" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets":
16> Added Item(s):
16> _ReferenceInstalledAssemblyDirectory=
16> C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
16> C:\Program Files (x86)\Windows Kits\10\References
16> Set Property: ResolveAssemblyReferencesStateFile=x64\Debug\ALL_BUILD\ALL_BUILD.vcxprojAssemblyReference.cache
16> Set Property: ResolveAssemblyReferencesSilent=false
16> Set Property: ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch=Warning
16> Set Property: FindDependenciesOfExternallyResolvedReferences=false
16> Task "ResolveAssemblyReference" skipped, due to false condition; ('@(Reference)'!='' or '@(_ResolvedProjectReferencePaths)'!='' or '@(_ExplicitReference)' != '') was evaluated as (''!='' or ''!='' or '' != '').
16>Done building target "ResolveAssemblyReferences" in project "ALL_BUILD.vcxproj".
16>Target "GenerateBindingRedirects" skipped, due to false condition; ('$(AutoGenerateBindingRedirects)' == 'true' and '$(GenerateBindingRedirectsOutputType)' == 'true') was evaluated as ('' == 'true' and 'true' == 'true').
16>Target "_RemoveZipFileSuggestedRedirect" skipped, due to false condition; ('$(_TargetFrameworkVersionWithoutV)' >= '4.7.1' And '$(AllowZipFileRedirect)' != 'true') was evaluated as ('4.0' >= '4.7.1' And '' != 'true').
16>Target "GenerateBindingRedirectsUpdateAppConfig" skipped, due to false condition; ('$(AutoGenerateBindingRedirects)' == 'true' and '$(GenerateBindingRedirectsOutputType)' == 'true' and Exists('$(_GenerateBindingRedirectsIntermediateAppConfig)')) was evaluated as ('' == 'true' and 'true' == 'true' and Exists('x64\Debug\ALL_BUILD\ALL_BUILD.config')).
16>Target "ResolveComReferences" skipped, due to false condition; ('@(COMReference)'!='' or '@(COMFileReference)'!='') was evaluated as (''!='' or ''!='').
16>Target "AfterResolveReferences" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets":
16>Done building target "AfterResolveReferences" in project "ALL_BUILD.vcxproj".
16>Target "ImplicitlyExpandDesignTimeFacades" skipped, due to false condition; ('$(ImplicitlyExpandDesignTimeFacades)' == 'true') was evaluated as ('' == 'true').
16>Target "ResolveTestReferences" skipped, due to false condition; ('@(Shadow)'!='') was evaluated as (''!='').
16>Target "ResolveReferences" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets":
16>Done building target "ResolveReferences" in project "ALL_BUILD.vcxproj".
16>Target "PrepareForBuild" skipped. Previously built successfully.
16>Target "PrepareForBuild" skipped. Previously built successfully.
16>Target "InitializeBuildStatus" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets":
16> Task "ReadLinesFromFile"
16> Task Parameter:File=x64\Debug\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate
16> Output Item(s):
16> _ReadProjectStateLine=
16> #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
16> Debug|x64|E:\blaWork\bla\blaBuild-win64-vc15\|
16> Done executing task "ReadLinesFromFile".
16> Set Property: ProjectStateLine=#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
16> Set Property: StateBuildType=Build
16> Task "WriteLinesToFile"
16> Task Parameter:Overwrite=True
16> Task Parameter:File=x64\Debug\ALL_BUILD\ALL_BUILD.tlog\ALL_BUILD.lastbuildstate
16> Task Parameter:
16> Lines=
16> #TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
16> Debug|x64|E:\blaWork\bla\blabuild-win64-vc15\|
16> Done executing task "WriteLinesToFile".
16> Task "Touch"
16> Task Parameter:AlwaysCreate=True
16> Task Parameter:Files=x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild
16> Touching "x64\Debug\ALL_BUILD\ALL_BUILD.tlog\unsuccessfulbuild".
16> Done executing task "Touch".
16>Done building target "InitializeBuildStatus" in project "ALL_BUILD.vcxproj".

最佳答案

这个问题显然是由 Windows 不小心实现区分大小写引起的。

背景我在各种 linux/windows 平台上工作,所以当我读到 windows 区分大小写时,我很兴奋,并在大约两周前试用了它。在 repo 文件夹上启用区分大小写后,cmake 无法再找到编译器,而且我没有时间弄清楚为什么,所以我将其切换回来。我使用的命令不是递归的,所以我一定没有禁用我启用的所有文件夹,所以仍然存在一些区分大小写的问题。

解决我的问题的步骤:

  1. 以管理员模式运行windows powershell
  2. fsutil.exe 文件 setCaseSensitiveInfo C:\folder disable
  3. 在从驱动器到最深源代码文件的每个目录级别上重复。

应该有一个递归标志或其他东西,但如果没有,在 powershell 中循环遍历文件夹就很容易了,但我现在懒得让语法正确。

more info on windows case sensitivity here

关于c++ - Visual Studio 不断重建和智能感知中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56643512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com