• Linux c 开发23 make文件


    1、关于CFLAGS
    CFLAGS 表示用于 C 编译器的选项,
    CXXFLAGS 表示用于 C++ 编译器的选项。
    今天在一个项目改用C++编译后,makefile编译一直不成功,研究发现是没有使用CXXFLAGS.
    2、make传递参数

    test=11
    test1:
    	echo $(test)"-this is test1"
    test2:
    	echo $(test)"-this is test2"
    

    执行结果

    # make
    echo 11"-this is test1"
    11-this is test1
    
    # make test1
    echo 11"-this is test1"
    11-this is test1
    
    # make test2
    echo 11"-this is test2"
    11-this is test2
    
    # make test="new"
    echo new"-this is test1"
    new-this is test1
    
    

    3、明明使用g++交叉编译器,但一直提示g++编译
    箭头处用cpp
    image
    4、makefile 执行顺序
    make的执行过程如下:

    1. 依次读取变量“MAKEFILES”定义的makefile文件列表
    2. 读取工作目录下的makefile文件(根据命名的查找顺序“GNUmakefile”,“makefile”,“Makefile”,首先找到那个就读取那个)
    3. 依次读取工作目录makefile文件中使用指示符“include”包含的文件
    4. 查找重建所有已读取的makefile文件的规则(如果存在一个目标是当前读取的某一个makefile文件,则执行此规则重建此makefile文件,完成以后从第一步开始重新执行)
    5. 初始化变量值并展开那些需要立即展开的变量和函数并根据预设条件确定执行分支
    6. 根据“终极目标”以及其他目标的依赖关系建立依赖关系链表
    7. 执行除“终极目标”以外的所有的目标的规则(规则中如果依赖文件中任一个文件的时间戳比目标文件新,则使用规则所定义的命令重建目标文件)
    8. 执行“终极目标”所在的规则

    5、makefile $@ $^ $<

    $@ 表示目标文件

    $^ 表示所有的依赖文件

    $< 表示第一个依赖文件

    $? 表示比目标还要新的依赖文件列表

  • 相关阅读:
    session与cookie的浅谈
    jmeter的正则表达式编辑器
    安装canvas
    sql server连接oracle并实现增删改查
    在iOS下-input[disabled] 颜色变浅兼容&& input[readonly]仍可获取焦点解决方法
    快速向表中插入大量数据Oracle中append与Nologging
    JavaScript 删除某个数组中指定的对象和删除对象属性
    ORA-00911: invalid character 错误解决
    SQL Server Varchar 中文乱码问题与使用SQL Server Management Studio管理软件查询出来的字段限制
    SqlServer该如何合适的索引
  • 原文地址:https://www.cnblogs.com/zhaogaojian/p/15959296.html
Copyright © 2020-2023  润新知