![c126435df69401ccb9e00b69269dd58d.png](https://i-blog.csdnimg.cn/blog_migrate/3feb7e69c7a05f6978ad07860caaf71e.jpeg)
这个例子从一个读取配置文件的程序讲起。
项目庞大之后,可以考虑不再把所有目标文件都链接到 main 程序中,而是分模块生成动态链接库,最近发现用 cmake 干这个事是真的爽。
现有一个连接数据库的 yaml 配置文件如下:
database:
type: postgres
host: localhost
port: 5432
user: ruitard
pass: hello_world
name: timescaledb
我想把读取配置文件的模块单独抽出来,就叫 tardis 好了,这里需要用到 yaml-cpp 库,首先生成一个名为 tardis 的动态链接库,然后 main 再链接它,CMakeLists.txt 如下:
cmake_minimum_required(VERSION 3.0.0)
project(tardis VERSION 0.1.0)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED on)
include(CTest)
enable_testing()
find_package(yaml-cpp CONFIG REQUIRED)
add_library(tardis SHARED tardis.cpp)
target_l