美文网首页
分享一个代码合并工具

分享一个代码合并工具

作者: Qt君 | 来源:发表于2019-11-28 23:19 被阅读0次

跨平台命令行工具(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也可以编译成功。

  • 使用说明:

  NAME

   amalgamate - produce an amalgamation of C/C++ source files.

  SYNOPSIS

   amalgamate [-s]
     [-w {wildcards}]
     [-f {file|macro}]...
     [-p {file|macro}]...
     [-d {name}={file}]...
     [-i {dir}]...
     {inputFile} {outputFile}

  DESCRIPTION

   Produces an amalgamation of {inputFile} by replacing #include statements with
   the contents of the file they refer to. This replacement will only occur if
   the file was located in the same directory, or one of the additional include
   paths 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 list
   of definitions provided through the -d option is consulted to convert the
   macro into a string.

   A file will only be inlined once, with subsequent #include lines for the same
   file 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 to
                      match when deciding to inline (assuming the file can be
                      located). The default setting is "*.cpp;*.c;*.h;*.mm;*.m".

    -f {file|macro}   Force reinclusion of the specified file or macro on
                      all appearances in #include lines.

    -p {file|macro}   Prevent reinclusion of the specified file or macro on
                      subsequent appearances in #include lines.

    -d {name}={file}  Use {file} for macro {name} if it appears in an #include
                      line.

    -i {dir}          Additionally look in the specified directory for files when
                      processing #include lines.

    -v                Verbose output mode
  • 使用示例
    合并main.cpp内所有的#include "文件名字"的内容到out.cpp中。(注意: 不合并#include <文件名字>)
amalgamate main.cpp out.cpp

相关文章

  • 分享一个代码合并工具

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

  • 开发、调试、测试工具1-2

    推荐代码编辑工具 sublime webstorm 断点调试工具 版本管理工具 开发和调试工具 代码合并和混淆工具...

  • Day15 git和MySQL

    1、gitgit是什么?版本控制工具,开发一个软件,多个人开发,不同的模块,代码合并?使用版本控制工具cvs===...

  • grunt gulp

    grunt gulp grunt: 压缩代码,合并代码,检测代码书写规范... 前端自动化工具 构建项目 官网:h...

  • grunt

    grunt:基于:node 开发压缩代码,合并代码,检测代码书写规范...前端自动化工具构建项目官网:http...

  • grunt及gulp的使用

    grunt是压缩代码,合并代码,检测代码书写规范grunt也是前端自动化,构建项目工具grunt官网:http:/...

  • mac 配置git 冲突合并工具 kdiff3

    mac 配置git 代码合并工具 kdiff3 git config --global merge.confl...

  • html5 webstorm 快捷键

    快速移动选种的代码,上下移动 快速合并和展开代码 (合并或展开的是某一个标签) 快速合并和展开代码 (合并或展开选...

  • Swift 自定义block

    分享一个全局定义block工具类,免去每次使用block时的繁琐代码工具类 代码如下: 使用:

  • 零代码合并新版TCGA数据库RNAseq表达谱数据

    上一期,小编已经给大家分享了如何用R代码来合并新版TCGA中的RNAseq表达谱数据 ☞R代码合并新版TCGA数据...

网友评论

      本文标题:分享一个代码合并工具

      本文链接:https://www.haomeiwen.com/subject/ugoiwctx.html