合并两个C ++项目

时间:2016-04-20 09:22:18

标签: c++ open-source

我正在编写NoSQL数据库。

所有内容都在“平面”目录中,包含Makefile*.h*.cc个文件。

我使用了大量的C ++模板,因此我在一些头文件中有很多代码。

为简单起见,我将项目分为两部分。

数据存储部分:
https://github.com/nmmmnu/HM3

和网络部分:
https://github.com/nmmmnu/asyncore_cpp

我的通用文件很少,目前它们位于每个目录中。

现在我需要将它们组合在一个项目中。

由于c ++模板,大多数代码都相互关联,但如果我把所有内容放在单个平面目录中,肯定看起来不太好。

有什么建议我可以使用哪些目录结构或如何合并项目?

如果有任何不清楚的地方,请发表评论,以便我可以改进这个问题。

1 个答案:

答案 0 :(得分:1)

我的规则如下:

  • 当A使用B而B使用A
  • 时,将A和B放在同一目录中
  • 创建目录D1,D2,D3,...
  • 的层次结构
  • 如果Dy中的B在Dx中使用A,则x < ÿ
  • 永远不要有两个同名文件,即使是在单独的目录中

这样做的主要原因是能够为每个目录编译一个中间静态库而不会出现链接问题。

我的一个大应用程序中的目录示例:

  • BuildInfo:从构建中获取信息的一些工具(libs和编译器版本,构建宏,......)
  • 例外:我可以在我的应用程序中使用的所有例外
  • 工具:常规C ++工具,如矩阵,io-tools(日志,线程管理器,python接口......)
  • MyAppCommon:我的应用程序的公共类
  • 算法:我的应用算法
  • Main:不同的主要创建最终的可执行文件,libs,Python接口,......