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。

  • 相关阅读:
    ETL讲解(很详细!!!)
    必须掌握的30种SQL语句优化
    亿级Web系统搭建——单机到分布式集群
    运行第一个容器
    Docker 架构详解
    容器 What, Why, How
    Docker 组件如何协作?
    部署 DevStack
    通过例子学习 Keystone
    创建 Image
  • 原文地址:https://www.cnblogs.com/ageane/p/nmake.html
Copyright © 2011-2022 走看看