简单编译框架

概述

这是我在GitHub上的第一个项目,用于模块化软件提供一个简单的配置和编译框架。

simple-build-framework

使用前提

  1. 将你的项目划分成一个主模块和若干个其他模块;
  2. 确保每个模块都是自包含的,即除了公用接口,本模块的所有源代码、私有头文件、配置文件等都应当放在对应的模块目录内。.

功能:

  1. 使用简单的Makefile片段(仅需模块名、源文件列表和可选的编译选项等)添加模块;
  2. 使用尽可能少的修改(仅需名称和可选的编译选项等)将1个文件添加到1个模块;
  3. 支持模块嵌套;
  4. 支持为每个文件或模块指定编译选项;
  5. 支持输出目录指定。

如何使用

  1. 基于框架中的main/mod1/mod2创建主模块和其他模块;
  2. 为每个最底层的模块添加源码、编译选项和module.mk;
  3. 在编译框架根目录下执行make命令,目标文件和最终的可执行文件main将会生成在指定或者默认的输出目录下。

注意:

可以使用 make help 得到所有支持的make命令及其用法.

TODO

  1. 支持C++文件和头文件;support for C++/Assembly files and header files;
  2. 支持kconfig(make config, make menuconfig等);
  3. 支持minggw环境;
  4. 支持更多的配置项(编译器指定, 可执行文件名, 编译信息等级等).
时间: 2024-11-10 11:08:15

简单编译框架的相关文章

Android应用开发编译框架流程与IDE及Gradle概要

1 背景 建议阅读本文之前先阅读<Android Studio入门到精通>和<Groovy脚本基础全攻略>及<Gradle脚本基础全攻略>三篇博客作为背景知识,这样才能更好.更系统的串起来.本文的核心就是下图: 关于Gradle的Android插件本文不会过多的说明,只给一个抛砖引玉的提示,详细使用参见文档API及Gradle配置,其实个性化的构建配置一般都是Gradle与Groovy的编写,与Android插件没太多关系,所以重点还在Groovy与Gradle构建.

SCSI miniport 驾驶一个简单的框架

前段时间,只需用一台新电脑,由于资金有限没有匹配了心仪已久的SSD.我没感觉到飞翔的感觉,总不甘心,仔细想想.我死了相当大的存储,我们可以假设部分内存作为硬盘驱动器把它弄出来.不会比固态硬盘的速度快,我们開始吧. 首先.我们要做的就是写一个硬盘控制器的驱动,我们知道.存储类型的驱动一般都遵守 class/port/miniport driver 这种结构.微软已经完毕了磁盘类的驱动,以及 SCSI 总线的 Port 驱动,我们仅仅须要完毕 SCSI 总线上硬盘控制器的 Miniport 驱动就能

搭建一个简单struts2框架的登陆

第一步:下载struts2对应的jar包,可以到struts官网下载:http://struts.apache.org/download.cgi#struts252 出于学习的目的,可以把整个完整的压缩文件都下载下来. 里面包括:1 apps:示例应用,对学习很有帮助 : 2 docs:相关学习文档.API文档等: 3 lib:核心类库,依赖包: 4:src:源代码 第二步:在eclipse新建一个Dynamic Web Project类型工程,一直点next,记得勾选generate web.

我的简单PHP框架——LabPHP

就我上次提到的  基于MVC设计模式实现简单PHP框架(雏形)-初期 这次列出我实现的LabPHP简易框架,该框架中没有使用任何的模板引擎,所以说要在模板中使用到php变量的话,仍然需要用到php的标签和语法,输出显示变量.但是却大体实现了逻辑与界面的分离. 该框架的简单同时也因此存在的许多的局限性,如目录结构不能轻易修改,当然除非修改框架内容,介于时间关系我也没有做过多的修改. LabPHP框架的目录结构如下: 项目的目录结构如下: 入口文件为 index.php URL模式为: http:/

LAMP的简单编译安装

[二进制安装MariaDB] 1.展开程序 #tar xf mariadb-5.5.32-linux-x86_64.tar.gz -C /usr/local/ 2.进入解压后的文件夹 # cd /usr/local/mariadb-5.5.32-linux-x86_64/ 3.创建数据存放目录 #mkdir -pv /mydata/data 4.创建安全登陆的用户和组 #groupadd -r mysql #useradd -g mysql -r mysql 5.改变数据目录的属主属组 #cho

Win7 VS2015简单编译FFMPEG播放器FFPlay

Win平台简单编译FFPlay播放器,顺便纪念下雷霄骅,一年前刚学FFMPEG时还看过他的博客,昨晚再次搜FFMPEG文章时才知道人已经走了... 做成了视频放到B站 http://www.bilibili.com/video/av8644322/ C++版本也是可以编译的,只是要修改非常多的C语言转C++的强制类型转换,这个例子是C语言写的,改扩展名为cpp后,有不少cpp关键字的参数要修正,不过基本上花点时间就能解决,没什么难度. 现在主要问题是网上能找到的例子,包括FFPlay都是基于SD

.Net框架搭建之1、SQL Server EF MVC简单三层框架

.Net简单三层框架简介 简单三层框架,是.Net开发中最最基础的框架了,由 数据访问层.逻辑处理层.表示层组成.一般情况下,在项目中数据模型Model层也是单独一层,但是只是单纯的数据模型不算在业务层划分当中. 好了,框架搭建,如果不了解,可能会觉得难以下手,了解之后,自然知道怎么做,只是其中的步骤,比起单纯的功能开发,是要繁琐不少,下面我们来一步一步搭建属于自己的框架,这里只列出重要步骤,其他未提到的细节可自行摸索. 数据模型Model层创建 数据模型层,首先要创建数据库,再从数据库生成EF

简单编译安装apache2

引 入 CentOS系统的软件管理主要有三种方式,rpm,yum,以及直接源码管理,前面已经详细介绍了rpm以及yum的相关用法,作为运维人员,源码安装有时也是不可避免的,下面,我们就以Apache为例简单介绍一下编译安装. 一. 什么是编译安装 编译:将源代码变为机器可执行的代码文件. 安装:将可执行文件安装到操作系统里. 二. 为什么要编译安装 有些软件,并不能通过例如rpm这种包管理系统安装,这就需要下载源码编译安装. 编译安装可以灵活地定制软件,选择自己需要的,取消自己不需要的. 针对特

简单编译bind

编译之前安装开发环境:Development tools , Server Platform Development , gcc等. 创建named用户及属组 # groupadd -g 53 -r named # useradd -g named -r -u 53 named 2.从isc.org上下载bind源代码 3.编译安装 # tar xf bind-9.9.5.tar.gz # cd bind-9.9.5 # ./configure --prefix=/usr/local/bind9