> 文章列表 > 简单的小型C++项目怎么用CMAKE进行管理

简单的小型C++项目怎么用CMAKE进行管理

简单的小型C++项目怎么用CMAKE进行管理

项目目录:

简单的小型C++项目怎么用CMAKE进行管理
简单的小型C++项目怎么用CMAKE进行管理
根目录下共有两个文件夹,分别为include、src,有两个文件,分别为CMakeLists.txt和main.cpp

main函数

简单的小型C++项目怎么用CMAKE进行管理
可以看出,include了func.h,且func.h的声明在include文件夹下,定义在src文件夹下的func.cpp中

src文件夹下的CMakeLists.txt

简单的小型C++项目怎么用CMAKE进行管理
add_library表示创建了一个静态库,名字是func,用的是func.cpp这个文件
target_include_directories表示让../include文件夹成为func库的头文件的默认搜索的文件夹,且PUBLIC表示让这个目录添加到func目标的接口中,这样任何使用func目标的其他目标都可以访问这个目录,这对于构建复杂的项目时非常有用。

具体到这个例子来说,就是在根目录下的CMakeLists.txt在build的时候,能够访问这个目录

根目录下的CMakeLists.txt

简单的小型C++项目怎么用CMAKE进行管理

add_subdirectory(src) 的作用是向 CMake 告知该项目的源代码位于名为 src 的子目录中。当执行 cmake 命令时,CMake 会检查项目根目录下的 CMakeLists.txt 文件,并执行其中的指令。如果其中包含了 add_subdirectory 指令,那么 CMake 会在指定的目录下寻找另一个 CMakeLists.txt 文件,并执行其中的指令。通过这种方式,我们可以将一个大型项目拆分成多个子目录,并为每个子目录单独编写 CMakeLists.txt 文件,从而更加灵活和方便地管理项目。

target_link_libraries(untitled33 func) 是 CMake 中用于将目标库链接到可执行文件的指令。

在本例中,untitled33 是一个可执行文件的名称,func 是一个目标库的名称。使用 target_link_libraries 指令,我们告知 CMake 将目标库 func 链接到可执行文件 untitled33 中。这样,当我们执行 untitled33 可执行文件时,操作系统会自动加载并运行 func 目标库中的函数或代码,从而实现所需的功能。