zoukankan      html  css  js  c++  java
  • Makefile中用宏定义进行条件编译

    在源代码里面如果这样是定义的:
    #ifdef   MACRONAME
    //可选代码
    #endif

    那在makefile里面
    gcc   -D   MACRONAME=MACRODEF
    或者
    gcc   -D   MACRONAME

    这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。

    对于GCC编译器,有如下选项:
            -Dmacro=string 或 -D macro=string,等价于在头文件中定义:#define   macro   string。例如:-D TRUE=true,等价于:#define   TRUE   true
            -Dmacro 或 -D macro,等价于在头文件中定义:#define   macro   1,实际上也达到了定义:#define   macro的目的。例如:-DLINUX,等价于:#define   LINUX   1(而在源码中的 #define   LINUX 是将LINUX定义为空,但LINUX这个宏定义有效)。
            --define-macro   macro=string与-D macro=string作用相同。

    使用 make V=1 可以打印编译的命令log。在编译android的源码时,可以用 make showcommands 来显示编译的命令,与make V=1一样,但不知 showcommands 是否对其它的linux类编译是否有效。

  • 相关阅读:
    打印出从1到最大的n位十进制数
    排序算法--(二)
    排序算法 (-)
    两个栈实现一个队列
    C++ 模板类解析
    根据先序遍历中序遍历重建二叉树
    格式化时间
    用js实现冒泡排序
    接口和抽象类的区别
    解析json
  • 原文地址:https://www.cnblogs.com/welhzh/p/5607824.html
Copyright © 2011-2022 走看看