一. 简介
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. EditPlus编辑java代码 常规配置

  2. while(scanf("%d",&n)!=EOF) / while(cin>>n)终止问题

    问题的发现:(想要看干货可以直接跳过这段) 我最近刚了解到关于栈的用法,于是按照参考书寻找代码,并把它敲到电脑上.编译运行代码后发现无法终止,在网上查找各种资料,总结如下. 因为我的电脑是Window ...

  3. maven项目变成web项目

    具体步骤如图所示: 第一步:建议一个Maven Webapp项目  第二步:右击项目,选择属性,找到project facets,点击tuntimes标签选择apache tomcat v6.0选中P ...

  4. Android 源码结构分析

    源码版本:AOSP_7.1.1 硬件平台:Rockchip 由于工作要求,需要对rockchip平台的安卓系统进行剪裁.安卓源码比较庞大,会让人感到无从下手,对此,有必要了解一下源码的大致目录结构以及 ...

  5. es6中 var 和 let的区别

    区别1:var没有块级作用域,只有 函数级作用域 和 全局作用域:let有块级作用域 function fn() { { var a = 10; } console.log(a) //输出10 } f ...

  6. 风扇转速通过FPGA采样

    1.风扇最大转速16000RPM,那么每一转需要时间60S/16000=0.00375S=375*10^4ns=T=T1+T2+T3+T4: 2.采样0.6S内的风扇detect信号的上升沿个数:0. ...

  7. JDBC08时间处理

    时间类型 java.util.Date 子类: -java.sql.Date无时分秒 -java.sql.Time -java.sql.Timestamp

  8. [hdu2087]kmp水题

    题意:求模板串在文本串中出现的次数(位置无交叉).只需在找到的时候把模板串指针归0即可. #pragma comment(linker, "/STACK:10240000,10240000& ...

  9. Mysql 常用函数(5)- substring 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html substring 的作用 截取指定范围的字符串, ...

  10. springboot+vue前后端免费开源

    序言 继上一篇 一套管理系统基础模版 详细梳理一下安装流程,功能说明,开发规范等. 后端项目结构? 如何从零搭建环境开发? 如何打包部署? 接入开发及规范 项目地址 小结 后端项目结构 ​ shop- ...