CMake和C ++-在几个git子模块之间共享库的最佳方法是什么

时间:2018-11-29 09:20:08

标签: c++11 cmake git-submodules clion cmake-modules

我正在处理包含4个子模块的大型C ++项目(使用cLion)。 我写了一个小型C ++库,它提供了从.properties文件读取的功能(在Java中最常见)。

“ Application.properties”文件应包含公用变量和每个项目变量。 例如;我正在使用Elasticsearch数据库,所有4个子模块都应该知道他的地址。 另外,由于我有4个国外项目,因此我需要不断维护5个不同的CMakeLists文件(主项目有4个子模块1)。

我的解决方案是在主项目根目录中设置共享代码,并通过在每个项目中包含库来使用共享代码。

  • 项目和子模块的版本控制为git。 我考虑了一下,因此决定也许我应该在开始写作之前检查更多的评论。

感谢, 科比。

1 个答案:

答案 0 :(得分:0)

我的解决方案是创建一个“通用模块” 对于子模块中的每个模块,我在cmakelists.txt文件中添加了以下行。 ADD_LIBRARY(MyLib ../Common/a.cpp ../Common/b.cpp) target_link_libraries(MyTargetName LINK_PUBLIC MyLib)

因为(子模块的)主存储库本身就是git存储库。 我可以轻松管理分片库。 谢谢。