今天写了个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中的引号。
分享到:
相关推荐
RC(Resource Compiler)工具是资源编译器,它将.rc文件转换为二进制资源文件,这些资源可以包含如对话框、图标、菜单等GUI元素。RC工具是Windows应用程序开发中不可或缺的一部分,尤其在非IDE环境中,需要手动调用...
VC7,全称Visual C++ 7,是微软公司推出的C++编译器的一个重要版本,属于Visual Studio .NET 2003的一部分。这个MINI版的VC7编译器是针对开发者的轻量级工具,尽管功能可能相对完整版有所精简,但依然提供了基础的...
2. **连接器**: 连接器的作用是将多个.obj文件(或库文件)链接在一起,形成一个可执行文件或动态链接库(DLL)。它负责解决符号引用、合并代码、分配内存地址、插入运行时库依赖等。在VC 2005中,连接器也支持生成...
MFC是一个面向Windows应用程序的类库,而ATL则专注于创建轻量级、高性能的COM组件。 **6. C++/CLI支持** 对于需要与.NET Framework交互的开发者,VC2010支持C++/CLI,这是一种扩展了C++语言,以支持.NET特性的编程...
在本例中,"西西软件园.txt"可能是关于VC90编译器或者vcredist_x64.exe的安装指南,而".url"文件则可能是一个链接,指向更多关于VC90编译器的信息或者更新。 总的来说,VC90编译器对于运行使用C++编译的Python 2.7...
免安装的vc2010编译器完整版,只包含编译器,支持32位和64位,只需运行对应的bat即可自动设置编译环境变量,进入工程目录执行编译指令即可,作者为了编译lzma sdk的相关资源,已通过测试。总大小1.4G,分为4个压缩包...
标题中的“vc一个自己写的编译器”表明这是一个基于Visual C++(简称VC)平台自制的编译器项目。在编程领域,编译器扮演着至关重要的角色,它将高级语言源代码转换为机器可执行的二进制代码。下面我们将深入探讨...
"最精简的vc6编译器"这个标题,意味着我们讨论的是一个经过优化和精简的版本,适合那些不希望安装完整版,但仍然需要编译C语言代码的用户。 VC6的主要特点包括: 1. **MFC库**:VC6包含了Microsoft Foundation ...
【VC2008_cl编译器(精简版)】是针对Microsoft Visual Studio 2008的一个特别定制版本,主要聚焦于C++的命令行编译功能。这款编译器在原版的基础上进行了优化,修复了一些已知的库文件错误,确保了更稳定、高效的编译...
免安装的vc2010编译器完整版。只包含编译器,支持32位和64位,只需运行对应的bat即可自动设置编译环境变量,进入工程目录执行编译指令即可,作者为了编译lzma sdk的相关资源,已通过测试。总大小1.4G,分为4个压缩包...
软件资源VC6.0++ 编译器下载地址!
- **集成开发环境(IDE)**: 一个统一的工作区,集成了代码编辑器、项目管理、编译器和调试器,提供了一站式的开发体验。 **使用注意事项** - **兼容性问题**: 虽然VC6.0历史悠久,但其编译器可能无法处理现代C++...
为了解决这个问题,用户可以尝试以下几个步骤: 1. **重新安装或修复Visual Studio 2010**:确保所有必要的组件都已正确安装,特别是C++编译器和调试工具。 2. **检查更新和补丁**:微软经常发布更新和补丁来修复...
VC6linker可能指的是与Visual C++ 6.0相关的链接器,这通常用于处理C或C++代码,并将其与易语言程序集成,形成一个完整的可执行文件。 易语言的静态编译有以下关键知识点: 1. **静态编译**:在静态编译模式下,...
总之,VC9作为一个MINI版的C++编译器,尽管可能精简了一些高级特性,但依然提供了基本的开发和调试功能,对于初学者或小型项目来说,是一个实用的选择。通过这个编译器,开发者可以编写、测试和优化C++代码,创建...
2. **符号表生成**:编译器会创建一个符号表,存储程序中的变量、常量和函数等信息,便于后续处理。 3. **语义分析**:编译器理解梯形图中的逻辑关系,如AND、OR、NOT等操作,并进行布尔代数简化,优化程序结构。 ...
总的来说,“vc做的C代码编译器”是一个适合学习和实践的工具,它可以帮助我们更好地理解和运用C语言,同时提供了可能的C++兼容性,对于提升编程技能和深入编译器原理有着积极的作用。通过使用和研究这个编译器,...
1. **直观的用户界面**:VC6提供了一个图形化的IDE,使得代码编写、调试和项目管理变得更加简单。它的界面布局和功能设计对后来的开发环境产生了深远影响。 2. **MFC库支持**:Microsoft Foundation Classes (MFC) ...
在Windows 7操作系统中,Visual C++ (VC) 编译器的配置是一个重要的环节,因为这直接影响到项目的编译、链接以及调试过程。虽然Windows 7相较于更早的系统版本有着更多的功能,但某些旧版开发工具如VC6可能在新系统...
总的来说,VC6编译器是一个适合初学者入门和熟悉C/C++编程的良好工具,尤其是对于那些需要维护旧代码库或者追求轻量级解决方案的开发者。然而,为了保持代码的现代性和安全性,建议逐步过渡到更先进的开发环境。