
Q? & A!
- Q: 什么是CMake?
- 跨平台开源的代码构建工具。
- Q: 如果说新技术的出现是为了解决旧问题,那么CMake是为了解决什么问题而出现呢?
- 复杂项目的第三方依赖代码库难以管理。
- 同一份开发人员系统,文件路径,环境变量等环境配置不一致导致的一系列问题。
- Q: CMake是如何解决如上问题的呢?
- CMake提供了名为
CMakeLists的配置文件,并提供了相应的API。 - 例如
add_executable(<name> <options>... <sources>...)。- 向名为
<name>的项目中添加了一个<sources>的可执行源文件。
- 向名为
- 例如
target_include_directories(<target> [SYSTEM] [AFTER|BEFORE]<INTERFACE|PUBLIC|PRIVATE> [items1.[<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])- 用于为指定的目标(如可执行文件或库)设置包含目录。
- 包含目录是编译器在编译源文件时搜索头文件的路径。
- 例如
find_package()- 查找和配置第三方库。CMake 会在系统中搜索指定的库,并设置相应的变量。
- 例如
target_link_libraries()- 将找到的库链接到目标(如可执行文件或库)。
- 至于跨平台的问题日后A菌再用代码来进行体现~
- CMake提供了名为
- Q: 严肃的总结一下?
- 关于
CMake,A菌在这里总结成一句话用来描述 项目结构 和 如何编译 的 描述性编程 (语言/系统/工具)
- 关于
👍