Cmake 使用教程
Cmake 使用教程
CMake是一个比make更高级的编译配置工具。它可以根据不同平台、不同的编译器,生成相应的 Makefile 或者 vcproj 项目。
通过编写CMakeLists.txt,可以控制生成的 Makefile,从而控制编译过程。
通过编写CMakeLists.txt,可以控制生成的 Makefile,从而控制编译过程。
CMake 自动生成的 Makefile 不仅可以通过 make 命令构建项目,生成目标文件,还支持 :
1. 安装(make install)、
2. 测试安装的程序是否能正确执行(make test,或者ctest)、
3. 生成当前平台的安装包(make package)、
4. 生成源码包(make package_source)、
5. 产生 Dashboard 显示数据并上传等高级功能,
6. 只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
7. 如果有嵌套目录,子目录下可以有自己的 CMakeLists.txt。
总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE 也是用它编译的,感兴趣的可以试用一下。
// ----------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------
我们需在 CMakeLists.txt 文件中指定如下几项,cmake版本、工程名、构建目标app的源文件
(1)cmake 版本: cmake_minimum_required(VERSION 3.11)
(2)指定工程名:project(My_project_Yuejie)
(3)指定安装目录:set(CMAKE_INSTALL_PREFIX "/usr/local/yzhang")
(4)设置 C++ standard :set(CMAKE_CXX_STANDARD 11);set(CMAKE_CXX_STANDARD_REQUIRED ON)
(5)add_subdirectories :添加外部项目文件夹
(6)include_directories :将指定目录添加到编译器的头文件搜索路径之下
(7)“
CMAKE_SOURCE_DIR” :是指定义了顶级 CMakeLists.txt 的文件夹(8)“cmake_c_flags” “cmake_cxx_flags”:用来设置编译选项
-Wall : ??
-Wextra: ??
-ggdb: ??
-Wno-missing-field_initializers : ??
(9) list : (1)LENGTH 返回list的长度 (2)GET 返回list中index的element到value中
(3)APPEND 添加新element到list中 (3)FIND 返回list中element的index,没有找到返回-1
(4)INSERT 将新element插入到list中index的位置 (5)REMOVE_ITEM 从list中删除某个element
(6)REMOVE_AT 从list中删除指定index的element
(7)REMOVE_DUPLICATES 从list中删除重复的element
(8)REVERSE 将list的内容反转 (9)SORT 将list按字母顺序排序
(10)option : 添加编译选项。
(11)add_excutable:使用指定的源文件来生成目标可执行文件
(12)
浙公网安备 33010602011771号