跨平台命令行工具(Amalgamate),用于生成C或C ++源的合并成一个文件。

  合并是仅使用几个文件(低至一个或两个)来分发库源代码的另一种方法。该工具通过内联包含的文件以创建一个或多个大型源文件或头文件来产生合并。

  对于成熟的库(即不经常更改),合并后的发行格式通常更易于集成和更新。合并将作为附加源文件添加到现有项目,而无需由构建工具单独构建。以下是一些已合并的源代码库示例:

FreeType: http://github.com/vinniefalco/FreeTypeAmalgam
JUCE:     http://github.com/vinniefalco/JUCEAmalgam
TagLib:   http://github.com/vinniefalco/TagLibAmalgam
  • 项目地址:
https://github.com/vinniefalco/Amalgamate
  • 项目提供一个VS2010工程,Qt君使用VS2017也可以编译成功。

  • 使用说明:

  NAMEamalgamate - produce an amalgamation of C/C++ source files.SYNOPSISamalgamate [-s][-w {wildcards}][-f {file|macro}]...[-p {file|macro}]...[-d {name}={file}]...[-i {dir}]...{inputFile} {outputFile}DESCRIPTIONProduces an amalgamation of {inputFile} by replacing #include statements withthe contents of the file they refer to. This replacement will only occur ifthe file was located in the same directory, or one of the additional includepaths added with the -i option.Files included in angle brackets (system includes) are only inlined if the-s option is specified.If an #include line contains a macro instead of a string literal, the listof definitions provided through the -d option is consulted to convert themacro into a string.A file will only be inlined once, with subsequent #include lines for the samefile silently ignored, unless the -f option is specified for the file.OPTIONS-s                Process #include lines containing angle brackets (i.e.system includes). Normally these are not inlined.-w {wildcards}    Specify a comma separated list of file name patterns tomatch when deciding to inline (assuming the file can belocated). The default setting is "*.cpp;*.c;*.h;*.mm;*.m".-f {file|macro}   Force reinclusion of the specified file or macro onall appearances in #include lines.-p {file|macro}   Prevent reinclusion of the specified file or macro onsubsequent appearances in #include lines.-d {name}={file}  Use {file} for macro {name} if it appears in an #includeline.-i {dir}          Additionally look in the specified directory for files whenprocessing #include lines.-v                Verbose output mode
  • 使用示例
    合并main.cpp内所有的#include "文件名字"的内容到out.cpp中。(注意: 不合并#include <文件名字>)
amalgamate main.cpp out.cpp

分享一个代码合并工具相关推荐

  1. 使用python开发一个pdf合并工具

    老婆给女儿整理打印学习资料,希望能从很多个pdf中抽取一些页码来合并成一个文件, 就希望我能写一个程序来实现这个功能.刚好最近正在学习python,就用python开发了一个 pdf合并工具,也算是学 ...

  2. python 代码行数统计工具_使用Python设计一个代码统计工具

    问题 设计一个程序,用于统计一个项目中的代码行数,包括文件个数,代码行数,注释行数,空行行数.尽量设计灵活一点可以通过输入不同参数来统计不同语言的项目,例如: # type用于指定文件类型 pytho ...

  3. 分享一个在线画图工具

    分享一个在线作图工具: 网址:https://www.freedgo.com/draw-index.html#O77975061465661442 第一步:输入网址后: 点击蓝色按钮 第二步:登录 登 ...

  4. 代码合并工具_分享几款比较常用的代码比较工具

    俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样,即使面对无休无止的编程工作,程序员们依旧任劳任怨的埋头苦干,梦想着用自己码下的代码改变世界.工欲善其事,必先利其器,每一位程序员都有自己私藏 ...

  5. 代码合并工具_11个代码质量审核和管理工具,程序员必备!

    「 读者福利!2 TB 各类技术资源免费赠送 」 如今,代码质量分析和审核已成为每个企业的基本流程.随着开源代码库使用的增加,安全性和代码质量对于构建高质量软件至关重要.不良的代码不仅会影响代码的可维 ...

  6. 代码合并工具_作为程序员你必须知道的几款代码比较工具

    在程序开发的过程中,程序员会经常对源代码以及库文件进行代码对比,在这篇文章里我们向大家介绍几款程序员常用的代码比较工具. WinMerge WinMerge是一款运行于Windows系统下的文件比较和 ...

  7. 代码合并工具_资源合并与压缩

    html压缩 1.在线压缩工具.https://tool.oschina.net/jscompress (现代化前端构建过程中基本不会使用,一般会选择构建构建webpack.Gulp.FIS 3) 2 ...

  8. 分享一个http请求工具类,超好用。

    文章目录 一,代码片 二,maven依赖 三,最后 一,代码片 分享一个http请求的工具类,超好用,废话不多说,直接上代码: import com.alibaba.fastjson.JSON; im ...

  9. 代码合并工具_合并上千个Excel表格,1秒就能完成

    在公众号对话框发送关键词[CSV],就能收到小 E 送出的批量转换 CSV 格式的小工具了! 小 E 和你打一个赌,95%的职场人都会遇到这样一个场景,很多 Excel 工作簿需要汇总合并成一个文档! ...

  10. 如何使用手机将PDF合并呢?分享一个手机合并文件方法

    怎么使用手机把两个PDF文件合并到一起呢?大家在处理PDF文件的时候,很多情况下都需要编辑PDF文件,如文件中有错误的地方需要编辑,收到两个同类型文件需要合并等,而我们也不能保证每时每刻身边都有电脑, ...

最新文章

  1. Envoy源码分析之Dispatcher
  2. 数字资产云交易所搭建开发平台,云交易的优势在哪?
  3. 安卓学习 之 广播(五)
  4. 这几道 Redis 面试题都不懂,怎么拿 Offer?
  5. 中职 计算机原理 计算题,中职《计算机原理》测验2.doc
  6. MySQL 8.0 数据字典有哪些变化?
  7. 同花顺崩了上热一!网友:早盘血亏,你还不让我跑 官方回应...
  8. java对象生成的时间_Java基础之一组有用的类——生成日期和时间(TryDateFormats)...
  9. ionic 幻灯指令 ion-slide-box
  10. Nacos教程_1 简介和安装
  11. 如何进行Tuxera NTFS的挂载卷设置?
  12. python requests下载zip文件_python requests 下载zip包
  13. python模拟超市抹零_Python基础练习二超市存包柜模拟
  14. 车载多传感器融合定位方案:GPS +IMU+MM
  15. 如何在PR中同步音频和视频
  16. VUE调用高德地图之热力图
  17. GhostScript 沙箱绕过命令执行漏洞
  18. 在使用firefly的RK3308的SDK使用buildroot构造文件系统时,遇到OEM分区和userdata不能挂在成功的问题
  19. docker 运行 web 服务和部署 Go web app
  20. SysML精粹学习笔记一

热门文章

  1. Window笔记本触摸板手势大全
  2. 第25章 串行FLASH文件系统FatFs
  3. Total Control的深入用法,如何使用脚本实现启动或重启指定App
  4. 思科的DUO解决方案到底是什么?
  5. 求Decimal的相反数
  6. EDCSA OPENSSL签名验签方法
  7. 适用于macOS 10.15系统的暗黑破坏神2 mac版
  8. 解决:“证书错误,导航已阻止”
  9. 【NYNU 1151】轻羽飞扬 数塔DP
  10. 如何突破村镇银行业务发展的瓶颈