(转)nmake学习笔记
1、命令行中调用nmake的基本语法:
namke /f makefile /x stderrfile [macrodefs] [targets]
其中makefile为makefile文件,/x stderrfile为可选参数,即把nmake错误存储到文件stderrfile。
2、makefile的主要语法:
2.1 注释
makefile的注释以#开头,如:
# Usage: NMAKE CLEAN (removes all intermediary files)
# or: NMAKE options (builds one library variant (see below))
2.2 宏
Makefile的一个重要组成部分是宏。Makefile中的宏和C语言的中宏类似,其实质就是字符串替换。其语法很简单,如下:
macro name = macro value
直译就是宏名 = 宏的值
VS预定义了很多宏,如OUTDIR,你可以在你的Makefile重新定义这些宏以覆盖原来的值。
宏可以使用环境变量,如你的系统有一个OPEN_SOURCE的环境变量,然后你可以这样定义宏:
THIRD_PARTY = $(OPEN_SOURCE)
宏的引用用法是 $(宏名)。
2.3 预处理指令
Makefile的预处理指令和C语言的预处理指令类似,其常用指令如下:
!ERROR string —— 显示错误“string”, 然后停止执行,错误代码为U1050
!MESSAGE string —— 显示字符串,这个一般用于信息显示C语言的#pragma message
!INCLUDE [<]filename[>] —— 包含makefile。
!IF const —— 如果成立(非零),则处理!F和下一个!ELSE或!ENDIF之间的语句
还有诸如!IFDEF macroname、!IFNDEF macroname、!ELSE、!ELSEIF、!ELSEIFDEF、!ELSEIFNDEF、!ENDIF和C语言的#if之类的指令的意义是一致的.
2.4 描述块
基本语法:
目标:依赖项
命令
3、示例
新建名为ConsoleTest的控制台程序,在ConsoleTest目录下新建名为ConsoleTest.vc的文件,用记事本输入:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
all: ConsoleTest.exe
# compile
stdafx.obj: stdafx.cpp
cl -c -D_X86=1 -DWIN32 -D_DEBUG -D_CONSOLE -Istdafx.h stdafx.cpp
ConsoleTest.obj: ConsoleTest.cpp stdafx.obj
cl -c -D_X86=1 -DWIN32 -D_DEBUG -D_CONSOLE -Istdafx.h ConsoleTest.cpp
# link
ConsoleTest.exe: ConsoleTest.obj
link /INCREMENTAL:YES /NOLOGO /subsystem:console /out:ConsoleTest.exe ConsoleTest.obj kernel32.lib
clean:
@- if exist *.obj del *.obj
|
cl和link简述:
cl的一些常用选项:
-c: 编译但不链接
-D: 定义预处理器,如-D_X86=1:指定在x86平台上编译,-D_DEBUG:定义预处理器_DEBUG,
-I:包含的头文件
cl的最后一个参数是所编译的文件。
link的一些常用选项:
/INCREMENTAL:是否启用增量链接,YES为启用,NO为不启用,
/NOLOGO: 取消显示启动版权标志
/SUBSYSTEM:指定子系统,在PC桌面程序上一般是两个选项:console(控制台程序)和WINDOWS(非控制台程序)。
/out: 指定输出的文件。
link最后的参数是需要链接的obj文件和库文件。
clean下面的@-if指令可以这么写:-if,其运行结果是一样的,但是有命令的回显。另外直接写成:if,也可以执行。
转载于:https://www.cnblogs.com/wuyuans/p/4320104.html
(转)nmake学习笔记相关推荐
- QT学习之路2 学习笔记
QT学习之路2 学习笔记 1.Qt 是一个著名的 C++ 应用程序框架.你并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个&quo ...
- 学习笔记:Linux入门到进阶
文章目录 前言 入门篇 一.常见的指令以及权限的理解 1. 初始Linux: 2.Linux下的基本指令 2.1 用户的创建和删除: 2.2 ls指令 2.3 pwd指令 2.4 cd指令 2.5 t ...
- [转]Windows平台下Makefile学习笔记
Windows平台下Makefile学习笔记(一) 作者:朱金灿 来源:http://blog.csdn.net/clever101 决心学习Makefile,一方面是为了解决编译开源代码时需要跨编译 ...
- PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call
您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...
- 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移
暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...
- 2020年Yann Lecun深度学习笔记(下)
2020年Yann Lecun深度学习笔记(下)
- 2020年Yann Lecun深度学习笔记(上)
2020年Yann Lecun深度学习笔记(上)
- 知识图谱学习笔记(1)
知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...
最新文章
- spring cloud 集成consul
- VNC 远程控制工具软件
- Java编码手册之华山版小精华
- 天津计算机本科学校有哪些专业吗,天津哪些大学有人工智能专业
- 关于TTThumbsViewController加载更多
- 查询分析300万笔记录_MySQL之慢查询日志
- 从电视主播到高考,人工智能还能干些什么
- 从源码分析ArrayList集合
- python海龟画图(6)多边形(3)圆内接多边形
- 超级表格企业版,最实用的三个功能
- oracle function
- 百度小米滴滴躬身入局,新能源造车如此多娇,引无数大厂竟折腰?
- C语言在一个数组中查找一个数字
- 一个霸占程序员休息时间的 APP
- 使用lua配置neovim所需的一切
- VS code常用插件
- 考研计算机300分什么水平,工科类考研300分什么概念?算不算高?
- yolov5训练自己的数据集并计算mAP
- Guice笔记_补充
- 用 Gnuplot 绘制实验数据
热门文章
- 健康身心态的10条法宝
- 30-80k/月!影创科技算法岗招聘,含实习生
- 25-60k/m | 湃道智能招聘
- CVPR 2020|华为发布基于连续进化的CARS算法,0.4GPU天输出帕累托前沿
- YOLOv3剪枝再升级!
- 第一届LCI workshop @ ICCV 2019, 欢迎投稿
- 《是碰巧还是执着?python所阅读的每一场知识点,唯一的共同点就是——参赛选手中,有详解Python的装饰器!》
- 639 页《深度学习:Deep Learning》硬核课程 PPT 下载
- 收藏 | 在yolov5上验证一些不成熟的想法
- 综述 | Google团队发布,一文概览Transformer模型的17大高效变种