一. 简介
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
位于每个存放代码文件的目录,定义该目录下所有代码文件生成为目标文件所需要的规则:
 

磨刀-CodeWarrior11生成的Makefile解析的更多相关文章

  1. java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法

    1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...

  2. Python 之父的解析器系列之三:生成一个 PEG 解析器

    原题 | Generating a PEG Parser 作者 | Guido van Rossum(Python之父) 译者 | 豌豆花下猫("Python猫"公众号作者) 声明 ...

  3. (三)openwrt主Makefile解析

    本周成胖子每周一博到了第四周^_^ 前言 主Makefile结构 顶层 第二层 尾记 前言 前一篇,我们大概描述了整个镜像文件的生成过程.本周我们来解析主Makefile,看看主要编译过程是怎么产生的 ...

  4. 海思的一个 Makefile 解析

    Makefile 原文 include ../Makefile.param #ifeq ($(SAMPLE_PARAM_FILE), ) # SAMPLE_PARAM_FILE:=../Makefil ...

  5. openwrt简单ipk生成及Makefile解释

    前言 类似的文章其实网上比较多了,我写这个的目的: 1,网上文章良莠不齐,有些自己都没实际动手操作,随便复制粘贴,实际操作不可行. 2,基本只讲了操作,我当时最关心的Makefile文件的解释没有. ...

  6. Android 生成和Pull解析xml

    一.单个对象生成xml 生成以下xml,该怎么生成呢? <?xml version='1.0' encoding='UTF-8' standalone='yes' ?> <accou ...

  7. Java之JDOM生成XML和解析

    一.生成XML文件 1.JDOM是对Java原始的类进行了封装.让解析XML文件变得很方便 2.创建一个XML文件的根节点: Element root = new Element("HD&q ...

  8. Dom生成Xml和解析Xml

    xml这样的文件格式在非常多时候都是非常适合我们用来存取数据的,所以利用程序来生成xml文件和解析xml文件就显得比較重要了.在dom中是把每个元素都看做是一个节点Node的,全部页面上的属性.元素等 ...

  9. makefile解析:一些常用函数

    #======================================================================= #指定目标文件名,makefile中的变量直接使用不用 ...

随机推荐

  1. POJ3734(矩阵快速幂)

    \(假设现在到第i个积木\) \(红绿恰都是偶数a种方案,恰都是奇数为b种方案,一奇一偶为c种方案\) \(由此考虑i+1个积木的情况\) Ⅰ.一奇一偶的方案 \(如果第i层恰是奇数的情况,那么本次只 ...

  2. SpringCloudGateWay学习 之 从函数式编程到lambda

    文章目录 前言: 函数式编程: 什么是函数式编程: 函数式编程的特点 lambda表达式: 核心: 函数接口: 方法引用: 类型推断: 变量引用: 级联表达式跟柯里化: 前言: 这一系列的文章主要是为 ...

  3. leetcode485——最大连续1的个数(easy)

    一.题目描述 给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意 ...

  4. 一文教你快速搞懂速度曲线规划之S形曲线(超详细+图文+推导+附件代码)

    本文介绍了运动控制终的S曲线,通过matlab和C语言实现并进行仿真:本文篇幅较长,请自备茶水: 请帮忙点个赞

  5. Ubuntu系统make menuconfig的依赖包ncurses安装

    Linux内核或者u-boot进行make menuconfig的时候,如果系统上没有安装ncurses,就会出现以下报错 *** Unable to find the ncurses librari ...

  6. Viterbi-Algorithm(维特比)算法

    CSDN博客:皮乾东  知乎:Htrying  微博:Htring的微博  微信公众号:自然语言处理爱好者(ID:NLP_lover)  文章来自:<数学之美> Viterbi-Algor ...

  7. [hdu5534]DP

    题目原意:给一棵n个点的树添加边,给定度函数f(d)为一个点的度的函数,求所有点的度函数的和 思路: 函数只与点的度有关,而与点无关,n个点的树有n-1条边,共产生2(n-1)个度,每个点至少有1个度 ...

  8. mysql-kettle-superset电商可视化数据分析

    1.项目概述 需求 对电商业务中的用户.商品.订单的数据进行分析,观察运营的情况 架构 业务数据库:Mysql:存储最原始的数据 ETL:Kettle 数据仓库:Mysql:存储需要进行分析处理的数据 ...

  9. 【Effective Java】第二章-创建和销毁对象——1.考虑用静态工厂方法代替构造器

    静态工厂方法的优点: 可以赋予一个具有明确含义的名称 可以复用唯一实例,不必每次新建 可以返回原实例类型的子类对象 可以在返回泛型实例时更加简洁 缺点: 类如果不含有共有的或者受保护的构造器,就不能被 ...

  10. zip压缩文件(二)

    普通压缩文件以20M大小的文件为例 public static void main(String[] args) { String source = "F:\\demo\\择天记 第5季 第 ...