在项目实战中,通过模块化设计能够使整个工程更加简洁明了。简单的示例如下:
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}
SHARED
process.cpp
)