zoukankan      html  css  js  c++  java
  • 磨刀-CodeWarrior11生成的Makefile解析

     
    一. 简介
    Code Warrior 11是基于Eclipse CDT开发的集成开发环境(IDE),在做到提供给用户Eclipse强大的现代化的编辑器和调试器,提升代码编辑效率和调试效率的同时,显著降低IDE的维护工作量。
    Code Warrior 11作为IDE,提供如下功能:
    1. 项目模板:按照模板配置流程一步步完成项目创建;
    2. 项目构建、清理、配置:只需要简单点击按钮即可完成项目构建、清理;可视化配置界面;
    3.项目加载、调试:一键完成项目加载到内存或Flash,进行调试;
    这里主要介绍CW11自动生成的编译系统(Makefile文件)。
     
    二. 编译系统
    项目构建之前,会生成一系列Makefile文件,也就是Eclipse构建项目所需要的一系列编译指令。
     
    包括如下项目:
    1.主makefile;
    2.项目相关参数makefile.local;
    3.生成项目最终目标时使用的参数:AP.args;
    4.每个代码文件对应一个编译参数文件:如main.args;
    5.各目录的subdir.mk:定义该目录中的OBJS以及这些OBJS的编译规则;
    以下逐一介绍。
     
    2.makefile.local
    该文件定义项目相关的路径信息,包括当前项目的顶层路径,使用的make程序的路径,Code Warrior的安装路径,编译toolchain的路径(包括as, cc, ld)。
    这个文件被主makefile引用。
     
    1.主makefile
    主makefile定义最终目标的生成规则,以及项目清理的规则:
     
    引用了一堆配置文件:
    配置相关:
     
    所有下级目录的subdir.mk:
    生成最终目标需要一堆OBJS/USER_OBJS,这些OBJS定义在各目录的subdir.mk中。主makefile引用这些subdir.mk可以导入所有需要编译的OBJS,以生产最终目标。
     
    3.AP.args
    定义链接生成最终目标的链接参数,即LDFLAGS。包括:
    a.待链接的各个目标文件;
    b.链接参数;
    c.链接文件;
    d.链接需要的库;
     
    4.main.args
    定义编译各个目标文件时需要的编译参数,即CFLAGS,包括:
    a.编译参数;
    b.引用路径;
    所有目标文件的编译参数应该是一致的。如果代码文件是汇编文件,则该文件的参数与c文件的参数不同,提供给汇编器(as)使用。
     
    5.subdir.mk
    位于每个存放代码文件的目录,定义该目录下所有代码文件生成为目标文件所需要的规则:
     
  • 相关阅读:
    ASCII码
    cron表达式学习
    mysql学习二、SQL常用数据类型
    mysql学习一 常用语句
    python学习
    搬砖
    新接触Linux 命令
    搬砖
    python encode decode
    201521123071 《JAVA程序设计》第十二周学习总结
  • 原文地址:https://www.cnblogs.com/wjcdx/p/9185085.html
Copyright © 2011-2022 走看看