一. 简介
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. Spring Cloud 学习 之 Spring Cloud Eureka(源码分析)

    Spring Cloud 学习 之 Spring Cloud Eureka(源码分析) Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 ...

  2. 201771030129-张琳 实验一软件工程准备—<阅读书之后的三个疑问>

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE/ 本次作业要求链接 https://www.cnblogs.com/nwnu ...

  3. pyltp安装教程及简单使用

    1.pyltp简介 pyltp 是哈工大自然语言工作组推出的一款基于Python 封装的自然语言处理工具(轮子),提供了分词,词性标注,命名实体识别,依存句法分析,语义角色标注的功能. 2.pyltp ...

  4. stanfordcorenlp安装教程&问题汇总(importerror-no-module-named-psutil、OSError: stanford-chinese-corenlp-yyyy-MM-dd-models.jar not exists.)&简单使用教程

    stanfordcorenlp安装教程&简单使用教程 编译环境:python 3.6 .win10 64位.jdk1.8及以上 1.stanfordcorenlp安装依赖环境 下载安装JDK ...

  5. 关于 k210 的 micropython 添加 ussl 模块,实现 https 访问支持的那些事。

    起因 事情已经过去快一周了吧,继上次修复 maixpy k210 的 esp8285 at 通信后,突然遇到泽畔大大问,要不要做 ussl 的支持? 评估了一下各方的实现,想了一下自己也刚好在做网络层 ...

  6. python是如何进行参数传递的?

    在分析python的参数传递是如何进行的之前,我们需要先来了解一下,python变量和赋值的基本原理,这样有助于我们更好的理解参数传递. python变量以及赋值 数值 从几行代码开始 In [1]: ...

  7. 小程序-for循环遍历的使用

    .js文件: Page({ /** * 页面的初始数据 */ data: { datas:[ { title: '提交申请', txt: '选择服务类型,填写基本信息,提交' }, { title: ...

  8. 手把手教你学Numpy,从此处理数据不再慌「一」

    当当当,我又开新坑了,这次的专题是Python机器学习中一个非常重要的工具包,也就是大名鼎鼎的numpy. 所以今天的文章是Numpy专题的第一篇. 俗话说得好,机器学习要想玩的溜,你可以不会写Pyt ...

  9. xml(4)

    schema约束 dtd语法:<!ELEMENT 元素名称 约束> schema符合xml的语法,xml语句 一个xml中可以有多个schema,多个schema用名称空间区分(类似jav ...

  10. 把iview中的table组件写成了一个公用组件,在另一个组件里去引用它的时候rander函数里的this指向不正确

    在vue项目里使用iview制作后台管理系统时,由于有多个页面都需要用到table组件,所以就把table写到了一个公共组件里,在其他页面去引用它,但是这时会发现一个问题,就是render函数里的th ...