http://blog.csdn.net/lsjseu/article/details/23395565

comake允许用户通过编写COMAKE文件,来帮助用户管理编译依赖以及编译环境的开发工具;

comake是Python编写的,所需要的COMAKE文件也是实际也是一个python脚本. 不过comake在设计的时候尽量让用户感觉不到是在写脚本而更像是在写配置。

以下为速成应用笔记:

-----------------------

comake使用规范

COMAKE文件存放地址:

COMAKE文件必须存放在模块/父目录级别下(若项目在父目录级别编译发布,则在父目录下存放COMAKE),且必须保存完整一级依赖列表;

如何快速使用comake

$ comake2 -h

参数:

-h --help 查看帮助

-D --debug 开启debug选项[默认不打开].

-S --scratch 创建一个默认的COMAKE文件 

-r --revision 从平台检出模块cvspath指定的TAG对应的依赖列表,配合-S使用

-W --watch-configs 查看本地依赖模块.-W -W可以查看模块引入来源.-W -W -W可以查看依赖模块的依赖.

-I --import-files 在解释COMAKE文件之前导入模块

-C --change directory 切换到directory下面执行[默认当前目录]

-Q --quiet 安静模式[默认不打开]

-U --update-configs 更新环境 

-B --build-configs 构建环境 

-F --force 构建环境时强制进行[默认不打开]

1.   使用comake2 -S就可以在当前目录下面产生一个空COMAKE文件了,这样能够节省用户从头开发编写的时间.

2.   执行comake2 -UB下载、编译一级和二级依赖;

3.   然后用户只需要修改COMAKE文件,然后再次使用comake2,接着就会产生Makefile文件.然后就可以直接make了

使用comake2例子:四部曲

·(1)comake2 -S //初始化COMAKE文件

如果代码库里已有COMAKE文件,可跳过这一步;

·(2) comake2 -UB //下载依赖代码,编译这些依赖代码

·(3)comake2 //生成Makefile

(4)执行make命令编译

comake2的更多相关文章

  1. C/C++ makefile自动生成工具(comake2,autotools,linux),希望能为开源做点微薄的贡献!

      序     在linux下C或C++项目开发,Makefile是必备的力气,但是发现手写很麻烦. 在百度有个comake2工具,用于自动生成Makefile工具,而在外边本想找一个同类工具,但发现 ...

  2. 使用BLADE构建c++工程管理

    使用BLADE构建c++工程管理 字数764 阅读2753 评论2 喜欢4 一. c++工程依赖管理 之前在百度一直使用comake2构建c++项目,十分方便.免去了手写Makefile的痛苦,很多项 ...

  3. Makefile 快速入门

    Makefile 速成 标签: Makefile编译器 2015-06-06 18:07 2396人阅读 评论(1) 收藏 举报  分类: C/C++(132)  Linux & MAC(19 ...

随机推荐

  1. spring 启动异常Failed to read candidate component class

    Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: ...

  2. 在UnrealEngine中用Custom节点实现马赛克效果

    参考这位大神的Shaderhttp://blog.csdn.net/noahzuo/article/details/51316015 //input BaseUV 屏幕UV //intput Tili ...

  3. LeetCode(122. 买卖股票的最佳时机 II)

    问题描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你 ...

  4. 基于AT89C51单片机烟雾传感器

    #include <reg51.h> #include <stdio.h> #define uchar unsigned char //宏定义无符号字符型 #define ui ...

  5. swal() 弹出层的用法

    swal()方法是一个提示框: swal({ title: "", text: "请扫描用户手机上的付款码", type: "input", ...

  6. Spring 4 MVC example with Maven - [Source Code Download]

    In this tutorial, we show you a Spring 4 MVC example, using Maven build tool. Technologies used : Sp ...

  7. 阿里云CentOS 7无外网IP的ECS访问外网(配置网关服务器)

    说明: 1.必须要有一台机器具有外网IP的ECS. 2.如果不想配置具有外网IP的ECS时,可以购买NAT网关,但需要钱,贵.下面会说明NAT网关的配置. 3.最后吐槽一下阿里云VPC网关导致不能按照 ...

  8. api日常总结:前端常用js函数和CSS常用技巧

    我的移动端media html{font-size:10px} @media screen and (min-width:321px) and (max-width:375px){html{font- ...

  9. .Net转Java.05.为啥MySQL没有nolock

    今天忽然想到一个问题,原来为了提高SQL Server性能,公司规定查询语句一般都要加 WITH (NOLOCK)的 现在转Java了,用了MySQL为啥不提这个事情了? 先在MySQL里写了一个查询 ...

  10. Linux脚本程序

    #!/bin/bash # array-ops.sh: 数组更多有趣的用法. array=( zero one two three four five ) # 元素 ]} # zero } # zer ...