zoukankan      html  css  js  c++  java
  • nmake使用说明

    百度了一圈全都在扯淡,谷歌搜到Stack Overflow和微软文档上的英文资料才弄明白。

    nmake自己支持很智能的自动扫描,只需要写:

    main.exe: *.c resource.RES
    	@$(MAKE) $(**:.c=.obj)
    	link $(**:.c=.obj) /OUT:$@

    就大功告成!

    其中$**的意思是依赖项,$@是生成目标;$(**:.c=.obj)是文本替换,把.c后缀换成.obj。如果是resource.RES的话它不会做任何替换。

    nmake会自动把所有.c编译成.obj,有内置的功能!

    注意这里我用了一个循环make的技巧。如果不用呢?不行,必须得用。

    下面说一个看起来更简单,但是其实有小问题的方案二。


    如果你直接写

    main.exe: *.obj resource.RES
    	link $** /OUT:$@

    也可以编译,但是问题就是编译一次之后,你添加了一个新的.c文件,这个新的.c不会被继续编译。

    因为最开始的时候目录下面没有.obj文件,所以你*.obj是可以的,make会知道把所有.c编译成.obj。

    但是,第二次的时候,目录下面有第一次编译的那些.obj,*.obj就只是以前的那些了。你新的.c不会被继续编译。

    所以这里才要用循环make,这样每次都会看所有*.c。

  • 相关阅读:
    001 云开发基础
    HttpClient 调用外部接口(简单实用)
    MD5加密(简单实现_可自行扩展)
    SAA C02考点梳理
    支配树
    CF1320E 题解
    dp套dp
    20210705模拟赛总结
    20210703模拟赛
    20210629模拟赛总结
  • 原文地址:https://www.cnblogs.com/ageane/p/nmake.html
Copyright © 2011-2022 走看看