Visual C++工具,在一个工程中,修改了一个C文件,将其单独编译后,再把工程build一次,新的更改就生效了,以前我都是这么做的,没有问题。可昨天开始,这样就突然不行了,非要把整个工程中的文件rebuild一次才能生效,由于工程中涉及文件较多,这样做耗费了很多时间,实在苦恼,请知高手指点一下,问题可能出现在什么地方,感激不尽。

解决方案 »

  1.   

    楼上两位能说的详细一点吗? 我VC不熟,“使用预编头的选择”在哪去掉? pch文件坏了怎样修复?  谢谢啊
      

  2.   

    在“使用预编头的选择”中我选了第二项,然后在“Through header”里填上stdafx.h,接着重新试了一次,结果还是不行,看来不是pch的问题,请高手继续关注....
      

  3.   

    把包括 .pch文件在内的所有vc生成的文件都删除后,rebuil all后,试单独build
      

  4.   

    在电脑中搜索了一遍,没找到.pch类型的文件,VC中已设置了自动创建,为何没有?该如何创建?
      

  5.   

    有可能你project的pch文件破坏了,或删除了,因而需要rebuild
      

  6.   

    用非全部模式build,察看生成的 .plg文件中有何疑点,也可以参照:发信人: topbaby (topbaby), 信区: MS_NET
    标  题: 初学VC或C++者常犯的几个错误(2)
    发信站: 水上明珠 (Thu Nov 28 09:51:33 2002) , 转信3)Unexpected end while looking for precompiled header
    这时因为该模块没有包括预编译头文件“stdafx.h”的缘故。
    VC用一个stdafx.cpp包含头文件stdafx.h,然后在stdafx.h里包含大部分系统头文件,这
    样编译时VC就通过编译stdafx.cpp把大部分系统头文件预编译进来了,在Debug目录下有
    一个很大的文件*.pch,这里就存储了预编译信息。
    根据这个原理,如果这个pch损坏了或被删除了,系统重新编译时就会抱怨“cannot open
    precompiled header file debug/*.pch”。这时怎么解决这个问题呢,打开Project-》
    Setting对话框选C++页,将Category下拉式列表框选中Precompiled Headers,最简单的
    办法就是选中第一个选项“Not using....",这样就根本不用预编译头也不去寻找pch文件 
    就不会出错了,但是这样做的后果是每次编译、连接都化更多的时间。
    也可以选第二个选项”Automatic ...",然后在“Through header”力填上stdafx.h,这样
    如果没有pch文件系统会自动生成一个pch,如果有的话就使用这个pch,这个选项是比较“
    智能”的。
    第三个选项是强行创建一个pch文件,第四个选项是直接使用pch文件。当然“Through 
    headers”里都填stdafx.h了。附赠一个小花招:
    如果编译、连接时总出稀奇古怪的错误或者调试时单步执行走的代码都不符合自己的想法
    时(比如说单步执行居然停在一个空行上),可以试试Rebuild All一下。
    因为你连接时一般都选用的incremental linking,每次增加一点,有可能把以前的错误
    的东西留在连接出来的可执行文件里了。不如彻底重新编译、连接一遍。