😈「CSDN主页」:传送门
😈「Bilibil首页」:传送门
😈「动动你的小手」:点赞👍收藏⭐️评论📝
文章目录
- CMake专栏介绍
- CMake基础篇
- CMake核心篇
- CMake高级篇
- CMake实战篇
CMake专栏介绍
CMake,作为一款跨平台的软件构建系统,已经成为构建C++代码的事实标准。每月超过两百万的下载量证明了其不可替代的位。无论您是初学者还是资深开发者,CMake都是管理C++软件构建过程的理想选择。我的教程部分将提供您需要的所有信息,让你轻松掌握CMake。
-
官方网站 https://cmake.org/
-
开源项目https://github.com/Kitware/CMake
欢迎来到「CMake入门教程」!我是您的导师,编程小鱼酱。本专栏是我一年多时间的心血结晶,包含90余篇精心编写的文章。文章不仅覆盖了CMake的各个方面,还包含了许多实战案例和技巧,为您提供了一个全面的学习之旅。
- 高效学习路径:避免碎片化学习,系统全面掌握CMake,极致性价比,省去读书和官方文档的时间。
- 实战技巧:大量实用示例,帮助您解决实际开发中的问题,都是实际项目用到的。
- 职业发展:提升您的市场竞争力,为升职加薪打下坚实基础,走向程序员巅峰。
CMake基础篇
- CMake是什么?为什么学习CMake
- 什么是CMakeLists.txt
- CMake支持的编译平台和IDE
- CMake入门教程【基础篇】HelloCMake
- CMake入门教程【基础篇】注释
- CMake入门教程【基础篇】CMake帮助手册的使用
- CMake入门教程【基础篇】在Windows、Linux上安装CMake
- CMake入门教程【基础篇】CMake+Minggw构建C++项目
- CMake入门教程【基础篇】CMake+Visual Studio2022构建C++项目
- CMake入门教程【基础篇】CMake+Linux gcc构建C++项目
- CMake入门教程【基础篇】CMake+vs2022+nmake构建C++项目
- CMake入门教程【基础篇】变量(set)
- CMake入门教程【基础篇】取消变量(unset)
- CMake入门教程【基础篇】版本控制(cmake_minimum_required)
- CMake入门教程【基础篇】开关(option)
- CMake入门教程【基础篇】CMake变量
- CMake入门教程【基础篇】列表操作(list)
- CMake入门教程【基础篇】条件语句(if)
- CMake入门教程【基础篇】打印(message)
- CMake入门教程【基础篇】跨平台判断宏
- CMake入门教程【基础篇】有效源文件组织
CMake核心篇
- CMake入门教程【核心篇】编译类型Debug、Release、MinSizeRel、RelWithDebInfo
- CMake入门教程【核心篇】添加子目录(add_subdirectory)
- CMake入门教程【核心篇】定义C++宏定义(add_compile_definitions)
- CMake入门教程【核心篇】链接库(target_link_libraries)
- CMake入门教程【核心篇】变量的作用域
- CMake入门教程【核心篇】包含目录(include_directories)
- CMake入门教程【核心篇】宏模板(macro)
- CMake入门教程【核心篇】函数(function)
- CMake入门教程【核心篇】添加依赖(add_dependencies)
- CMake入门教程【核心篇】添加文件(aux_source_directory)
- CMake入门教程【核心篇】添加应用程序(add_executable)
- CMake入门教程【核心篇】安装(install)
- CMake入门教程【核心篇】添加库(add_library)
- CMake入门教程【核心篇】引用子模块.cmake文件(include)
- CMake入门教程【核心篇】查找包(find_package)
- CMake入门教程【核心篇】属性管理set_property和get_property
- CMake入门教程【核心篇】动态库(dll, so)
- CMake入门教程【核心篇】静态库 (.a, .lib)
- CMake入门教程【核心篇】动态库与静态库的差别
- CMake入门教程【核心篇】设置和使用缓存变量
- CMake入门教程【核心篇】导出项目库
- CMake入门教程【核心篇】导入外部库Opencv
CMake高级篇
-
CMake入门教程【高级篇】qmake转cmake
-
CMake入门教程【高级篇】CPack打包项目
-
CMake入门教程【高级篇】管理MSVC编译器警告
-
CMake入门教程【高级篇】编译器优化级别
-
CMake入门教程【高级篇】配置文件(configure_file)
-
CMake入门教程【高级篇】执行文件、库属性set_target_properties和get_target_property
-
CMake入门教程【高级篇】分组source_group
-
CMake入门教程【高级篇】查找文件、目录、库find_file、find_path、find_library
-
CMake入门教程【高级篇】文件操作file
-
CMake入门教程【高级篇】设置源文件的属性set_source_files_properties
-
CMake入门教程【高级篇】获取文件信息get_filename_component
-
CMake入门教程【高级篇】编译选项target_compile_options
-
CMake入门教程【高级篇】创建自定义目标add_custom_target
-
CMake入门教程【高级篇】自定义的构建命令add_custom_command
-
CMake入门教程【高级篇】执行外部命令execute_process
-
CMake入门教程【高级篇】高级选项mark_as_advanced
CMake实战篇
- CMake入门教程【实战篇】C++项目依赖管理的开源库Hunter介绍
- CMake入门教程【实战篇】使用开源库cmake-modules简化项目开发与维护
- CMake入门教程【实战篇】使用Protocol Buffers
- CMake入门教程【实战篇】使用Boost库
- CMake入门教程【实战篇】使用Hunter获取Git的tag
- CMake入门教程【实战篇】使用CURL网络库
- CMake入门教程【实战篇】Ninja环境搭建与加速项目构建