vc中nmake.exe cl.exe 的使用(与编译相关)

学习vc编译器1--bin目录 vc编译器bin目录的程序是vc底层。了解编译器的程序,是高级程序设计的基础下面只介绍主要1.CL.EXE     CL.EXE是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。       注意,所有编译器选项都区分大小写 阅读详情

vc中nmake.exe cl.exe 的使用


首先简单介绍一下程序是如何编译链接的。程序写好之后,我们进行编译和链接来产生可执行程序。这时候,编译器为了完成编译和链接,需要知道很多信息。比如要编译的文件是哪一个,使用哪些编译选项进行编译,编译好之后输出到哪里,输出文件叫什么名字等等。makefile 就是被vc使用保存这些信息的方法之一,编译时程序nmake根据makefile中的信息,在用相应选项执行编译,用相应执行链接,最后生成可执行文件。vc的编译程序是CL.EXE,链接程序是LINK.EXE。关于本文所提到的vc编译链接用的程序都在 目录 ...Microsoft Visual StudioVC98Bin 下。

整个过程如下。

在我看这个console程序的makefile的时候,突然怀疑vc6中,console,sdk,mfc等的编译也是通过执行外部的 nmake.exe来完成的。如果真是我猜的这样的话,如果我在vc的集成环境中选择rebuild all 进行编译链接的话,vc就会执行nmake.exe文件,那么nmake.exe这个文件必须存在,否则的话编译就会失败。于是,我将 nmake.exe 这个文件改了个名字。来测试,vc6的console,sdk,mfc程序是否是调用nmake来完成编译的。

结果很失望,没有了nmake.exe,这个console程序一样可以编译。这说明了,vc6并不是通过执行nmake来进行编译的。可能是调用内部的某些函数,来处理各种编译的参数和路径,再分别调用编译程序和链接程序来完成编译。不过再想想也是,连makefile文件都没有。不会是通过nmake 来指导编译的。

那么使用makefile的程序(叫project更准确)的情况又如何呢?于是我又找了一个使用makefile的程序来试,我找的是msdn附带例子中的ping,这个是使用makefile的。这一次,如果没有nmake.exe,就无法进行编译。会报如下错误

'NMAKE' 不是内部或外部命令,也不是可运行的程序或批处理文件。

Error executing d:winntsystem32cmd.exe.

由此可见,使用makefile的程序,确实是通过nmake.exe分析makefile中的内容,来指导编译的。

总结一下,用VC new->project 中的 Win32 Console Application (console), Win32 Application (sdk), MFC AppWizard (mfc) ,这样建的程序,编译不通过nmake。而使用 Makefile 的编译会通过 nmake 处理相应的makefile文件,来进行编译。顺便说一句,没有makefile的工程,他们的编译信息,编译选项放在了哪里呢?这个是我本身就知道的,他们放在工程目录下的dsp文件中,用编辑器,比如记事本,打开dsp文件就可以看到。也可以打开dsw文件看看。

最后我又做了这样两个试验,

将CL.EXE改名。结果编译出错。错误如下。

Compiling... Error spawning cl.exe

一定程度可以说明了,编译程序是CL.EXE,VC集成环境下的编译,也是用一定的编译选项调用CL.EXE来完成的。

将LINK.EXE改名。结果链接出错。错误如下。

Linking... Error spawning link.exe

一定程度可以说明了,链接程序是LINK.EXE,VC集成环境下的链接,也是用一定的链接选项调用LINK.EXE来完成的。

本文来源:新客网整理

nmake.exe文件 NMAKE.EXE是Microsoft 程序维护实用工具,它是一个基于说明文件中包含的命令生成项目的工具。 NMAKE.EXE是Microsoft 程序维护实用工具,它是一个基于说明文件中包含的命令生成项目的工具。 立即下载

相关推荐

编译工具 nmake.exe

win32 下的 make工具,利用makefile文件,如果没安装vs ,可以下载这个工具使用

NMAKE.EXE学习

<br />NMAKE.EXE是Microsoft 程序维护实用工具,它是一个基于说明文件中包含的命令生成项目的工具。<br /><br />命令语法如下:<br />NMAKE [option...] [macros...] [targets...] [@commandfile...]<br />说明:其中,options是NMAKE的选项,macros是在命令行中的宏定义,targets是NMAKE的目标文件列表,commandfile是包含命令行输入的文本文件(或响应文件)。 <br /><br />

何明桂的小窝 1783

VC6命令行精简编译器

VC6精简编译器 ·支持C++和Win32API开发 ·通过命令行编译程序

nmake命令(windows下的makefile)

例:link *.obj rc.res /LIBPATH:"G:\Visual C++\lib" /SUBSYSTEM:WINDOWS /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OpenGL32.Lib。

quxiantao的专栏 1449

OneNet新版MQTT+OneJSON接入全指南

物联网云平台设备接入是嵌入式系统与云端协同的基础能力,其核心依赖于标准化通信协议与统一数据模型。MQTT作为轻量级发布/订阅协议,凭借低带宽占用和高可靠性,成为边缘设备上云的主流选择;而物模型(Thing Model)则定义了设备能力的数字契约,支撑数据语义化与平台自治管理。OneNet新版强制采用MQTT+OneJSON协议栈,不仅提升数据解析一致性与安全认证强度,更推动开发范式从‘协议适配’转向‘模型驱动’。该架构广泛适用于环境监测、智能表计、工业传感等场景,尤其利好基于ESP8266、STM32等资源

weixin_42599558的博客 362

VINS-Fusion实战:从零搭建无人机视觉SLAM系统(附ROS配置全流程)

本文详细介绍了如何从零开始为无人机搭建基于VINS-Fusion的视觉SLAM系统。内容涵盖硬件选型(重点推荐双目相机与IMU搭配)、ROS环境配置、传感器标定、核心参数调优以及实际飞行测试与问题排解全流程,旨在帮助开发者实现稳定、精确的无人机自主定位与导航。

wasm7browser的博客 214

nmake.exe使用整理

具体可以参考罗云彬先生的《Windows环境下32位汇编语言程序设计》 我现在编译汇编程序的主要工具有两个。 一个是RadASM,这是一个集成的IDE使用起来非常的方便,资源编辑器,调试器等全都帮你配置好了,也许要设置一下执行的环境变量但基本使用是没什么问题。 还有一个是MASM32 SDK软件包(下载:http://masm32.com/)。但是有一个点很麻烦,就是汇编程序的编译链接都是要自己来的,即使MASM32提供了很完整的工具,但是在dos下打这几个命令还是要花很多时间...

人人为我,我为人人 1462

TLSR8258蓝牙Mesh实战:从SDK下载到自定义通信指令全流程(附避坑指南)

本文详细介绍了TLSR8258蓝牙Mesh开发的完整流程,从SDK下载、环境搭建到自定义通信指令的实现。通过实战案例和避坑指南,帮助开发者快速掌握低功耗蓝牙Mesh网络构建技巧,适用于智能家居、工业监控等物联网场景。

weixin_29176179的博客 200

解决qmake.exe、nmake.exe、rc.exe在命令行编译时总是报错无法打开头文件或库文件的问题。

没能彻底解决的问题,如fatal error RC1015: cannot open include file "windows.h"、fatal error C1083: 无法打开包括文件: "type traits”: No such file or directory、LINKfatal error LNK1181: 无法打开输入文件“she1132.lib”等问题解决。

z15020610959的博客 973

(8)机器人动力学

机器人是一个具有多输入多输出的复杂动力学系统,存在严重的非线性,需要非常系统的方法对机器人进行动力学研究。常用的机器人动力学建模方法有:Lagrange(拉格朗日)动力学方法、Newton-Euler(牛顿-欧拉)动力学方法、Gauss(高斯)动力学方法、Kane(凯恩)动力学方法等。机器人动力学研究的是机器人的运动和作用力之间的关系。机器人的动力学问题包括动力学正问题和动力学逆问题。动力学正问题是对于给定的关节驱动力......

rouyu308的博客 9499

保姆级教程:断网环境下用Flexnet服务器搞定SolidWorks 2021安装与破解(附错误5解决方案)

本文提供SolidWorks 2021在断网环境下的企业级部署指南,详细解析Flexnet服务器本地化工作原理,并给出安装与破解的实战方案,特别针对常见的'错误5'问题提供多维度解决方案。适用于需要内网隔离或移动办公的工业设计场景,确保数据安全与授权合规。

weixin_28683391的博客 301

windows下使用nmake编译

从网上下的demo,使用MinGW下载编译,但是调用make的时候提示 Makefile:1: *** missing separator. Stop. 现在猜测是第一行的问题 !include 编译方法和遇到的问题: 最终偶然发现vs中有nmkae的工具,最终可以编译成功 其中发现的问题: 1 调用nmake:找不到nmake命令 'nmake' 不是内部或外

琪花亿草 4万+

碳纳米管NRAM:突破5纳米制程的下一代存储技术

在半导体存储领域,非易失性存储器和随机存取存储器是两大基础技术方向。传统DRAM速度快但断电易失,NAND Flash非易失但写入慢、寿命有限,两者在先进制程下都面临物理极限挑战。碳纳米管作为一种新型纳米材料,凭借其优异的导电性、机械强度和尺寸微缩潜力,为存储技术革新提供了物理基础。基于碳纳米管的NRAM技术,通过控制纳米管间的可逆接触实现电阻状态切换,兼具DRAM级速度和Flash的非易失性,同时具备近乎无限的擦写寿命和出色的CMOS工艺兼容性。这项技术不仅能满足5纳米以下制程的存储需求,在数据中心缓存、

weixin_42576804的博客 427

windows cl命令行编译和nmake

windows也可以用Mingw GCC编译,但是最近就抽风想用下nmake,稍微研究一下 nmake.exe和cl.exe现在安装的vs的bin目录下,加到环境变量Path中去。 然后新建两个环境变量INCLUDE和LIB,INCLUDE就是放所需要的头文件路径,LIB就是库文件路径了,例如D:\vs2012\VC\includevs2012\VC\include加到INCLUDE中,D:\...

damonlearning的博客 5011

Python爬虫实战:利用Playwright与异步技术高效抓取链家十万级二手房数据

在开始编写代码之前,我们首先需要为项目选择合适的技术栈。1. 传统方案:Requests + BeautifulSoup优点: 简单、轻量、学习成本低。直接发送HTTP请求获取HTML,然后解析。缺点: 对于大量由JavaScript动态渲染的内容无能为力。现代网站(包括链家)大量使用JS来加载数据和实现交互,简单的HTTP请求无法获取到完整的页面内容。此外,容易被基于IP或请求头特征的反爬机制拦截。2. 进阶方案:Selenium优点。

2201_76125261的博客 891

【原创】汇川H5U PLC控制伺服的方法

6、在线调试-进入伺服调试,可以在本软件上进行调试,可以实现原点回归、正向点动、反向电动、使能(这里使能打开时触摸屏上的使能不能打开,会冲突)、复位、停止(如下图所示)。5、在原点返回设置中一般情况下对原点信号、正限位、负限位、原点返回方向、原点返回方式进行设置,其他设置默认不改(如下图所示)。3、在单位换算设置上只需要修改脉冲数和移动量(根据伺服配套导轨上名牌进行设置),其他设置默认不改(如下图所示)。11、双击后右边出现编辑框 在上半部分定义变量(IN、INOUT、OUT、VAR)(如下图所示)。

Qinmingyue13的博客 6670

VC CL.exe命令使用介绍

cl.exe所在的文件夹里面有一个批处理叫做 VSVAR32.BAT 首先运行它一次,你就可以用cl.exe来编译你的代码了。 CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。 注意,所有编译器选项都区分大小写。 若要编译但

thomas_nuaa的专栏 3646

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

winC++使用nmake指令编译调用MFC DLL

我不想换更高版本的vs,太庞大了,这时,我get到了一个好东西。,是64位版本,为啥不用32位呢?,如下图,可以看到,32位。会有提示**“xxx.dll缺失,程序无法运行”**,环境变量需要系统重启才能生效,更简单的方式是直接使用。可以看到编译链接成功,最后注意,一定要把引用库。文件会直接退出,我还以为编译的程序崩溃了,安装完成后,在make中添加mfc路径。目录拷贝到我电脑上,但是这次使用。,我在vc目录搜索也没有找到。安装后直接部署的,可以看到。安装如下,安装位置自行选择。这个文件.我猜测和我的。

oqqsoap1234567的博客 1417

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC 命令行 CL

如果你的 VC 6.0 是按默认安装在 C 盘的话,打开“Microsoft Visual Studio\VC98\Bin”里面有一个“VSVARS32.BAT” 的文件,打开它,运行一次,cl.exe 就可以使用了 如果你的 VC 6.0 是安装在其他盘(比如我的 VC 6.0 就安装在 E 盘下),就需要配置一下坏境设置了,打开“我的电脑-属性-高级-坏境变量”,设置如下: 在这一

个人技术博客 2455

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

VC中cl.exe命令参数详解

cl.exe所在的文件夹里面有一个批处理叫做 VSVAR32.BAT  首先运行它一次,你就可以用cl.exe来编译你的代码了。  (在vs2005里面未发现该文件,怀疑因该是上级目录的vcvarsall.bat,但是不执行该文件同样可进行命令行编译。) CL.exe 是

mylinx的专栏 2351

关于windows下使用 cmake 的 nmake 方式构建项目

NMake环境变量配置 正常情况下,安装vs集成开发包时默认用户使用msbuild作为构建工具,虽然也顺带安装了nmake,但是实际上用户不进行一些配置的话,是不能直接使用nmake编译项目的,原因是没有配置环境变量,编译时找不到各种路径,win SDK库\Rtc库路径、头文件路径、甚至编译工具、构建工具路径也找不到。微软想让用户更傻瓜,最好啥原理也不懂,直接用就好。 于是乎,为了可以直接使用...

木易杨的博客 1万+

cl.exe(VC编译程序)参数大全

CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。 注意,所有编译器选项都区分大小写。 若要编译但不链接,请使用 /c。 使用 NMAKE 生成输出文件。 使用 BSCMAKE 支持类浏览。   以下是一个

EosTears的专栏 1501

cl.exe & nmake.exe

1. 如果已经有vc6的dsp工程,可直接导出nmake脚本文件(.mak)     “Project - Export Makefile...” nmake -f nMakeTest.mak CFG="nMakeTest - Win32 Debug" nmake -f nMakeTest.mak CFG="nMakeTest - Win32 Debug" all nmake -f nM...

情义唯真,友谊方长存 1485

VC中cl.exe的用法

http://blog.chinaunix.net/u3/94136/showart_1922419.html(转载)  cl.exe所在的文件夹里面有一个批处理叫做VSVAR32.BAT 。首先运行它一次,你就可以用cl.exe来编译你的代码了。 CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF)

zxremail的专栏 786

vc中nmake.exe cl.exe 的使用

首先简单介绍一下程序是如何编译链接的。程序写好之后,我们进行编译和链接来产生可执行程序。这时候,编译器为了完成编译和链接,需要知道很多信 息。比如要编译的文件是哪一个,使用哪些编译选项进行编译,编译好之后输出到哪里,输出文件叫什么名字等等。makefile 就是被vc使用保存这些信息的方法之一,编译时程序nmake根据makefile中的信息,在用相应选项执行编译,用相应执行链接,最后生成可...

weixin_30511039的博客 104
上一篇: vc++调用exe时,如何获取exe的输出信息(输出显示在IDE的输出中)
下一篇: TRACE宏(只在MFC的DEBUG中有效)|VC++非MFC项目中如何自定义TRACE宏|头文件的重复编译|DEBUGVIEW窗口
haiross
博客等级 码龄19年 1604粉丝 358原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值