在项目实战中,通过模块化设计能够使整个工程更加简洁明了。简单的示例如下:
1、项目结构
project_folder/├── CMakeLists.txt├── src/│ ├── my_library.cpp│ └── my_library.h└── app/└── main.cpp
2、CMakeList文件
# CMake 最低版本要求
cmake_minimum_required(VERSION 3.5)# 项目名称
project(MyProject)# 添加库文件
add_library(my_library src/my_library.cpp
)# 添加头文件路径
target_include_directories(my_library PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)# 添加可执行文件
add_executable(my_app app/main.cpp
)# 链接库文件到可执行文件
target_link_libraries(my_app PRIVATE my_library)
3、实战案例
还是用之前文章的demo来举例
链接之前定义的addition库
最后在main函数中调用
4、总结
通过多文件夹形式以及动态链接库的方式,能够有效的规范C++工程建设。
add_library(${PROJECT_NAME}SHAREDprocess.cpp)