vc的资源编译器的一个问题

今天写了个bat文件调用nmake来编译一个VC2003的工程,没有想到cpp文件都通过了,就是在编译rc文件时,出错了,错误如下:
  rc.exe /l 0x409 /fo".\Release\MEServer.res" MEServer.rc MEServer.rc(11) : fatal error RC1015: cannot open include file 'afxres.h'. NMAKE : fatal error U1077: “rc.exe” : 返回代码“0x1” Stop.
看来是rc.exe在编译的时候没有找到afxres.h文件,不过我看了在vc的atlmfc的inclue目录下有这个文件,而且前面的cpp文件都 编译过了,说明找到了atlmfc的include目录的,开始rc.exe为什么没有呢? 我把afxres.h文件和其他几个相关文件拷贝到工程目录下来,编译通过。虽然问题可以这样解决,可是我知道这个方法很不好,毕竟afxres.h是 vc的文件,拷贝到自己目录下来是不好,把自己的工程文件跟系统文件混在了一起,对以后的改动不好。我下决心要找到原因。 我首先的想法是找到一个可以正常运行的实例,这很简单就能找到,在VC2003的IDE里边就能正常运行,我找到设置项,把编译rc文件的命令行参数提取 出来,在我的命令行中调用一下,不行。很奇怪,难道要我去抓rc.exe在运行时候的命令行参数,因为编译时运行很快,用工具不好抓。 折腾了一阵,我想起vc2003的安装的工具箱里边有一个的编译设置的命令行环境,因为我是自己写的bat文件,没有用它的那个。那么我用它提供的怎么 样?我马上运行了这个命令行编译环境,ok,情况正常了。仔细查看一下,把它的环境设置(也就是INCLUDE变量的设置)拷贝过来到我命令行设置中,运 行,好了,没有问题了。 很高兴找到了方向了,到了这一步应该很快就能找到原因了。我仔细比较了一下,发现因为在设置INCLUDE的时候,我在atlmfc的include路径 前后加了引号,而VC提供的则没有。就是这个原因导致问题的出现。 看来cl.exe能处理INCLUDEZ中的引号,而rc.exe不能处理INCLUDE中的引号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值