在win2000下我编了一个程序myprogram,原来好好的,可以重复进行rebuilt all操作,可以有一次不知道怎么回事就不能rebuild all了,程序总提示:
fatal error C1083: Cannot open precompiled header file: 'Debug/myprogram.pch': No such file or directory.
我自己也不清楚到底进行了怎样的改动才导致这样的错误!请各位大侠帮忙啊!好再我还有个备份,我只好把备份文件Debug下的myprogram.pch文件复制到现在编译的目录下,不能再用rebuild all了,就直接执行程序,这样程序又能运行了。但只要我一rebuild all程序马上又提示:打不开预编译头文件,找不到pch文件了。

解决方案 »

  1.   

    你把现在debug目录下的那个pch后缀的文件删除,然后rebuild all这是因为你的pch文件和现在的项目不配套。
      

  2.   

    检查一下stdafx.h,看有没有被改动。vc6经常会有这问题,我也时常碰到
      

  3.   

    只要我一rebuild all 就无法生成pch文件了。我确实修改了stdafx.h,我加了一些库文件,这有什么影响吗?
      

  4.   

    在左边workspace里,切换到file,右键单击任何一个.cpp文件,-》settings...,选择C/C++,在category里选择“Precompiled Headers",如果是stdafx.cpp文件,选中下面”Create precompiled header file (.pch)",下面框里输入stdafx.h.对于其他任何.cpp文件,选择"Use precompiled header file (.pch),框里输入stdafx.h.
    OK!
      

  5.   

    只发源代码 .dsp /.cpp/.h/.rc等等(不要编译产生的文件)到别的机器上重新编译,就可以了。
      

  6.   

    或者你干脆在project->setting->link中的project options中,删掉
    /Fp"Debug/xxxx.pch" /Yu"stdafx.h" 
    就可以了(即不使用预编译)。
      

  7.   

    我用 cxiaobao(风子) 介绍的方法试了一下,还真能rebuild all了,但出现下面两个连接告警,请问为什么?
    LINK : warning LNK4075: ignoring /EDITANDCONTINUE due to /INCREMENTAL:NO specification
    LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
      

  8.   

    1:EDITANDCONTINUE:vc极优秀的一个特点,即你在调试时,如果编辑过代码,如果可能,那么vc将把你的代码编译,并且继续从你原来的地方调试。但是这个特点需要/INCREMENTAL:yes支持。你只要在project options里加入/INCREMENTAL:yes就可以了。
    2:你连接的库的版本不同,如同时连接单线程和多线程库等。