用vs2015写c++,编译报错项目已过期,怎么回事?

用vs2015写c++,编译报错项目已过期,怎么回事?,第1张

这个bug的原因是Visual studio 2010认为项目中的被删除的文件是过期的,比如项目中的某个头文件,这个头文件已经被删除,Visual studio 2010找不到这个头文件,就认为它是过期的,所以每次调试VS都认为项目是过期的,需要先编译。

那为什么编译时没有发现有文件被编译呢,原因是这个头文件没有被任何CPP或C文件使用,所以编译时没有发现有文件需要重新编译。

Bug的原理明白了,解决方案就是在VS项目中删除那个头文件。

一种笨方法就是在VS里一个个头文件点击打开,找到不能打开的。

一种聪明的方法是写脚本解析工程文件,然后验证文件是否存在。

还有一种方法是通过DebugView来查看。

下面介绍一个这种方案。

1. 打开devenv.exe.config文件(此文件在%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\ 或者 %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\里)

2. 在</configuration>这行前面添加

<system.diagnostics>

<switches>

<add name=”CPS” value=”4″ />

</switches>

</system.diagnostics>

3. 重新启动Visual Studio

4. 打开DbgView(下载地址:http://technet.microsoft.com/en-us/sysinternals/bb896647), 勾选:菜单-》Capture-》Capture Win32 和 菜单-》Capture-》Capture Events

5. 点击F5开始调试,出现提示“此项目已经过期”时停止

6. 在DbgView按ctrl+F窗口查找“not up to date”,查找到如:

[120] Project ‘D:\cache\test1\test1.vcxproj’ not up to date because build input ‘D:\CACHE\TEST1\FUN1.H’ is missing.

7. 此时就找到了关键文件FUN1.H,只要在工程中移除这个文件再编译一次就可以了。

摘自:http://blog.csdn.net/jiaxiaokai/article/details/50923344 博主:举头红日白云低

摘自:http://blog.csdn.net/jiaxiaokai/article/details/50923344 博主:举头红日白云低

摘自:http://blog.csdn.net/jiaxiaokai/article/details/50923344 博主:举头红日白云低

不影响编译

1、一种显而易见的方案就是找到这个不存在的文件,直接从工程的文件列表里面删除即可,如果工程小,倒是可以这么干,如果工程很大,那就是体力活了

2、还有一个方法是开发一个工具,解析下VS2010的vcxproj工程文件,这是个XML文件,解析并不困难,把里面的文件都校验一下,把不存在的文件直接找出来

3、还是一个方法是通过DbgView工具[点我下载]来输出不存在的文件(此方法需要了解VS的devenv的配置的含义,以及一些脚本的配置方法,我不懂,因此依葫芦画瓢尝试了下,发现很简单!)这种方法需要改下VS2013的IDE的配置文件:devenv.exe.config这个文件的位置%ProgramFiles%\MicrosoftVisualStudio10.0\Common7\IDE\或者%ProgramFiles(x86)%\MicrosoftVisualStudio10.0\Common7\IDE\(1)用一个文本编辑工具打开devenv.exe.config文件

(2)然后在这行的下面添加如下配置(注:如果是VS2010或者之前的版本第三行请使用)(3)重启下VS

(4)打开DbgView[下载地址https://docs.microsoft.com/zh-cn/sysinternals/downloads/debugview],注意把Capture菜单里面的CaptureWin32和CaptureEvents勾选上

(5)在VS里面F5开始调试,等"此项目已经过期"的框d出来之后,去DbgView的输出里面找类似下面的输出(如果内容很多可以直接查找ismissing或者notuptodate这些关键字直接就定位到不存在的文件了

(6)通过这个方法可以把所有不存在的文件都找到并在VS资源管理器中找到并移除,全部移除后发现问题解决!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6692187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存