关于VC8中的“fatal error C1083”的故事

如果没有编译stdafx.cpp就不会生成pch,自然会报如下错误:

fatal error C1083: Cannot open precompiled header file: 'Debug/xxx.pch': No such file or directory;

 

但是另人郁闷的是手动编译stdafx.cpp也报上面那个错,这是为啥呢?

 

搞成这样很有可能是您把stdafx.cpp从解决方案中删除、移动过,之后既使再添加也不好使了。

 

其实,这个问题源于项目的vcproj文件。

原来在最初时,vcproj中的stdafx.cpp是这样描述的:

            <File
                RelativePath="./stdafx.cpp"
                >

                <FileConfiguration
                    Name="Debug|Win32"
                    >
                    <Tool
                        Name="VCCLCompilerTool"
                        UsePrecompiledHeader="1"
                    />
                </FileConfiguration>
                <FileConfiguration
                    Name="Release|Win32"
                    >
                    <Tool
                        Name="VCCLCompilerTool"
                        UsePrecompiledHeader="1"
                    />
                </FileConfiguration>

            </File>

但当删除、移动Stdafx.cpp后,红色的这段就没了。也就是说stdafx.cpp与pch的关联没有了,

stdafx.cpp成了一个普通的cpp文件,所以在编译它时也会报那个错。

要解决这个问题很简单,直接修改vcproj文件,在stdafx.cpp项下加上红色部分就OK了。

 

最后补充一下:这个万恶的Bug是VC系列的一贯传统,早在VC6时就开始代代相传了,不知道VC9里还是否有……

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值