怎么组织你的C++代码?之前工程目录结构一直比较混乱,查了一下C++的相关开源项目和一些资料,整理一下思路
1 | . |
各个目录和文件的作用:
- cmake
放置.cmake文件 - CMakeLists.txt
顶层的CMakeLists.txt中设置全局配置,并通过add_subdirectory的方式添加各个子目录 - bin
编译后的可执行程序 - lib
编译后的动态库 - doc
文档 - extern
或者叫3rdparty/thirdparty,放置使用的第三方库,一般通过submodule的方式加入主工程
工程中常用的几个第三方库,如boost、protobuf,单独编译一遍,放到子模块中,不用每个项目都重新编译 - src
工程源代码 - include
如果工程要对外提供头文件的话,将对外提供的头文件放到这里
todo: 了解一下CMake的install命令 - tests
单元测试
参考资料
github mmorse1217
github kigster
cmake-basis
An Introduction to Modern CMake
How do you add Boost libraries in CMakeLists.txt