C++ “最新检查索赔生成输入”;“不见了”;当文件存在时
在将整个解决方案目录从一个文件夹复制到另一个文件夹并进行零更改之后,我在构建过程中遇到了一个恼人的错误 每次构建时,即使没有更改任何文件,也会重新编译每个cpp文件。在构建几次之后,这种情况会继续发生,而不会在新的解决方案文件夹中进行任何更改 将工具选项项目和解决方案生成并运行MSBuild项目生成输出详细程度增加到C++ “最新检查索赔生成输入”;“不见了”;当文件存在时,c++,visual-studio,msbuild,C++,Visual Studio,Msbuild,在将整个解决方案目录从一个文件夹复制到另一个文件夹并进行零更改之后,我在构建过程中遇到了一个恼人的错误 每次构建时,即使没有更改任何文件,也会重新编译每个cpp文件。在构建几次之后,这种情况会继续发生,而不会在新的解决方案文件夹中进行任何更改 将工具选项项目和解决方案生成并运行MSBuild项目生成输出详细程度增加到详细程度会显示错误: ------最新检查:项目:项目,配置:版本x64------ 项目不是最新的:缺少生成输入“d:\projects\Project\Project\stdaf
详细程度
会显示错误:
------最新检查:项目:项目,配置:版本x64------
项目不是最新的:缺少生成输入“d:\projects\Project\Project\stdafx.cpp”
现在,stdafx.cpp
没有丢失,并且stdafx.obj
在发布文件夹中。它也与这个文件没有特别的关系。如果我要删除实际上不需要的stdafx.cpp
,丢失文件的投诉只会转移到编译列表中的下一个文件(在我的情况下,这是glad.c
)
原始解决方案文件夹没有此错误。你还需要什么吗?我是一名长期linux开发人员(emacs/make/cmake/g++/gdb/git等是我的首选环境),最近使用了visual studio
我是一名长期linux开发人员(emacs/make/cmake/g++/gdb/git等是我的首选环境),最近使用了visual studio
然后,如果您像我一样,您可能正在处理某种混合的文件系统,其中区分大小写/不区分大小写的问题正在困扰您
我遇到了此问题,因为我启用了在安装时可用的。但我相信,其他使用各种虚拟化方案和装载外来文件系统的人最终可能会遇到“保留大小写,但不区分大小写”的情况
我收集到的信息是,作为规范化过程(包括解析相对路径)的一部分,MSBuild将文件路径转换为所有小写形式,以便进行计算。因此,即使您的.vcxproj中的大小写都正确,它也会在嗅探可用性路径之前将其抛出。它可能会破坏路径,一次只请求一个目录,或者做一些导致它报告文件不存在的事情,而仅仅通过shell中的“dir”请求完整路径是不会暴露的
在任何情况下,在路径中的文件夹上禁用区分大小写开关(该文件夹的名称使用大写字符)都会使问题消失
在将整个解决方案目录从一个文件夹复制到另一个文件夹并进行零更改之后,我在构建过程中遇到了一个恼人的错误
…这表明这很可能是区分大小写的问题。制作副本时,是否保留文件时间戳?如果修改了时间戳,VS除了重新编译别无选择。我不介意时间戳是否第一次被破坏并强制重新编译。问题是,一旦编译完成,问题就会永久存在。他们并不是说obj过时了。他们说文件本身丢失了,并确定(即猜测)构建项目必须以某种方式生成它(当然,这不是真的)。我看到这种情况的最常见(也是最恼人的)时间是从磁盘上删除某些源文件(或头文件;无论什么),但不是从项目本身。它会表现出同样的症状。通常,文件路径相对于项目文件。如果不是您的,您可能需要对.vcprojx文件进行文本编辑,并手动更改其中的路径名。此外,请检查每个文件的包含。有些可能缺少stdafx.hAll。项目文件夹库中存在cpp文件,没有任何异常。同样,这个问题甚至没有出现在原始目录中。只有复制的目录。