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。

  • 相关阅读:
    HDU 1800 Flying to the Mars 字典树,STL中的map ,哈希树
    字典树 HDU 1075 What Are You Talking About
    字典树 HDU 1251 统计难题
    最小生成树prim算法 POJ2031
    POJ 1287 Networking 最小生成树
    次小生成树 POJ 2728
    最短路N题Tram SPFA
    poj2236 并查集
    POJ 1611并查集
    Number Sequence
  • 原文地址:https://www.cnblogs.com/ageane/p/nmake.html
Copyright © 2011-2022 走看看