简述
C/C++开源库一般是一堆的头文件和源文件,做到声明和实现分离,减小单个模块大小,这在设计上是很好的,但是用起来稍显麻烦。在网上看到有好心人推荐了一个开源工具Amalgamate,专门用来对C/C++的头文件和源文件进行合并用的,于是尝试了一下。
编译过sqlite源码的应该知道,sqlite3源码包有一个是指包含sqlite3.h
、sqlite3_ext.h
、sqlite.c
等为数不多几个代码文件的(也有分开的),嵌入到项目中非常方便。这就是用Amalgamate进行合并的。
下载并编译Amalgamate
下载很简单,这里就不细述了
git clone https://github.com/vinniefalco/Amalgamate.git
编译也很简单,直接使用VS打开Amalgamate\Builds\VisualStudio2010\Amalgamate.vcxproj
,然后编译生成即可。
最后的示例下载中有我编译的程序。
# gcc 编译
g++ Amalgamate.cpp juce_core_amalgam.cpp -o Amalgamate -lpt