cbuild-一个创建和管理C++项目的工具

介绍:

这是个人开发的一个管理C++项目的工具,用shell脚本编写。

可能会不定期更新,也欢迎大家一起完善。

当前开发版本0.5。各版本功能如下:

  • version 0.0 -- 初始版本,具备创建、删除、编译、运行项目基本功能
  • version 0.1 -- 在0.0版本基础上使用模板文件,方便用户定制自我需求
  • version 0.5 -- 重构代码,优化参数选项

使用方法:

github地址:https://github.com/caibingcheng/cbuild

gitee地址:https://gitee.com/jerry323/cbuild

github和gitee中该项目是同步的。

安装:

clone项目到本地,进入项目根目录。

git clone git@github.com:caibingcheng/cbuild.git ~/cbuild
cd ~/cbuild

运行install.sh脚本。

sh ./install.sh	#普通安装
sh ./install.sh -f #强制安装,用于重新安装或者添加新功能

安装后,工具包会安装在~/.cbuild下,进入目录,其中template模块包含的是生成项目时一些文件的默认内容,如有需要可以自行修改其中的内容。

注意:在~/.cbuild/template/CMakeLists.txt文件中包含{__CBUILD_PROJECT__}字段,这是工具自定义的,不可修改。

使用:

可用命令:

cbuild -a project #添加项目
cbuild -c project #创建项目
cbuild -r project #删除项目
cbuild -b project #编译项目
cbuild -e project #运行项目
cbuild -f #打开强制开关,可用于强制生成(覆盖)项目、强制编译\移除\运行项目
cbuild -h #显示帮助 cbuild -R #移除当前项目
cbuill -B #编译当前项目
cbuild -E #运行当前项目 cbuild uninstall #卸载工具

大写选项不需要添加参数,默认使用当前项目;比如最近生成的项目或使用-a选项添加的项目。

强制开关打开后造成的项目覆盖破坏是难以逆转的,请合理使用。

注意:项目名称project应该只包含项目名称且合法,不应该包含路径符号和其他非法符号('', '/', '?', etc.)。这是不允许的。

项目树:

project

  |--bin

       |--#binara file(executable file)

  |--build

       |--#MakeFile

  |--src

       |--main.cpp    

  |--include

       |--#include file

  |--lib

       |--#libs

  |--CMakeLists.txt

cbuild-一个创建和管理C++项目的工具的更多相关文章

  1. java-idea创建maven管理web项目不能解析EL的解决方法

    默认会原样输出: 这是由于这样子创建的web.xml的版本不够高 2.5之前web.xml文件中的头定义中,el表达式默认是忽略不解析的,故需要显示声明解析el表达式 所以我们要修改版本: 再< ...

  2. 使用Axure管理团队项目图文教程 团队协作操作步骤

    Axure RP团队版和企业版都支持团队协作,可以创建和管理团队项目,即多人共同创作一个原型.本文通过图文教程的形式,讲解了如何基于Axure Share服务创建和管理团队项目.因为Axure Sha ...

  3. 从头开始编写一个Orchard网上商店模块(3) - 创建Orchard.Webshop模块项目

    原文地址:http://skywalkersoftwaredevelopment.net/blog/writing-an-orchard-webshop-module-from-scratch-par ...

  4. JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识

    JAVA WEB快速入门系列之前的相关文章如下:(文章全部本人[梦在旅途原创],文中内容可能部份图片.代码参照网上资源) 第一篇:JAVA WEB快速入门之环境搭建 第二篇:JAVA WEB快速入门之 ...

  5. Django项目创建与管理

    1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关知识大家可以参考Python社区. 2.准备环境 Django版本为2.0或更高 Py ...

  6. IntelliJ IDEA 12创建Maven管理的Java Web项目(图解)

    转:http://blog.csdn.net/zht666/article/details/8673609/ 本文主要使用图解介绍了使用IntelliJIDEA 12创建Maven管理的JavaWeb ...

  7. Django项目的创建和管理

    1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关知识大家可以参考Python社区. 2.准备环境 Django版本为2.0或更高 Py ...

  8. VC 下如何正确的创建及管理项目

    讲解 VC 下如何正确的创建及管理项目 本文讲解 Visual C++ 的项目文件组成,以及如何正确的创建及管理项目. 本文所设计的内容是初学者必须要掌握的.不能正确的管理项目,就不能进一步写有规模的 ...

  9. vs2016 创建 vsto excel 文件项目的一个问题

    新工作需要些一个基于Excel开发一个工具,vs的 vsto 功能很好用,封装了基于开发office 开的一些工具.但是在实际使用时,创建项目总是报错,提示打开excel文件失败.项目是需要创建一个e ...

随机推荐

  1. INCLUDE COMMON FILES IN HTML USING JQUERY

    Simple example for including common files in HTML. JQuery load() function is used for including comm ...

  2. rsync 数据备份+cron+mailx案例

    大家都知道数据非常重要的,需要经常备份,如果备份了,但无法恢复还原,那就证明你备份的很失败,所有当我们备份了数据需要检查是否备份完整,是否可用可恢复.以下为一个企业案例: 某公司里有一台Web服务器, ...

  3. ZooKeeper 集群的安装部署

    0. 说明 ZooKeeper 安装在 s102.s103.s104上,这三个节点同时是 Hadoop 的 DataNode 1. ZooKeeper 本地模式安装配置 1.0 在 s101 上进行安 ...

  4. 进程控制编程——Linux编程

    1.进程的创建 编写一段程序,使用系统调用fork( )创建两个子进程,在系统中有一个父进程和两个子进程活动.让每个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b” 和“c”. ...

  5. 乘风破浪:LeetCode真题_022_Generate Parentheses

    乘风破浪:LeetCode真题_022_Generate Parentheses 一.前言 关于括号的题目,我们已经遇到过了验证正确性的题目,现在让我们生成合法的括号列表,怎么办呢?想来想去还是递归比 ...

  6. 在servlet中用spring @Autowire注入Bean

    在servlet中新增init方法: public void init(ServletConfig config) { super.init(config); SpringBeanAutowiring ...

  7. 团队作业——Beta冲刺4

    团队作业--Beta冲刺 冲刺任务安排 杨光海天 今日任务:在同队成员帮助下,完成了浏览详情界面的跳转,以及图片的嵌入 明日任务:继续完成浏览详情界面 吴松青 今日任务:研究图片详情界面后端函数,遇到 ...

  8. 【Alpha 冲刺】 9/12

    今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完善API文档,并初步使用SpringMVC产生编写部分API 已完成 孙浩楷 完成课程通知页面(及发布通知的弹窗) 已完成 胡冰 ...

  9. SASS对css的管理

    一.SASS简介 SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了SASS的主要用法.我的目标是,有了这篇文章,日常的一般 ...

  10. shiro实战系列(十二)之常用专业术语

    请花 2 分钟来阅读和理解它——这很重要.真的.这里的术语和概念在文档的任何地方都被涉及到,它将在总体上 大大简化你对 Shiro 和安全的理解.   由于所使用的术语使得安全可能令人困惑.我们将通过 ...