cmake基础使用

mac2022-06-30  18

目录

cmake基础使用 介绍安装开始带有install属性的CMakeLists.txt

cmake基础使用

介绍

CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。 通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。

如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。

总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE也是用它编译的,感兴趣的可以试用一下。

安装

ubuntu : sudo apt install cmake

开始

我这里使用的是 Visual Studio Code ,安装cmake 相关插件。

示例:

新建工程目录,用Code打开。新建子目录如 bean,然后写一些类,例如person

新建main.cpp 及 CMakeLists.txt 目录如下:

. ├── bean │   ├── people.cpp │   └── people.h ├── CMakeLists.txt └── main.cpp

CMakeLists.txt中 #cmake最低版本需求,不加入此行会受到警告信息 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(person) #项目名称 #把前目录 bean 下所有源代码文件和头文件加入变量res AUX_SOURCE_DIRECTORY(bean res) #生成应用程序 person ADD_EXECUTABLE(person ${res}) 创建build 文件夹,并进入。 终端输入: cmake .. //生成Makefile make //编译 ./person //运行

当然,可以写一个shell脚本(我这里建立一个名为run.sh 的脚本)在build目录下,如:

#!/usr/bin cmake .. make ./person

然后:

chmod +x ./run.sh ./run.sh

带有install属性的CMakeLists.txt

直接上了:

cmake_minimum_required(VERSION 3.2.0) file(GLOB ff "main.cpp") #GLOB 不能少,不然会报错 add_executable(final ${ff}) install(FILES ./build/final DESTINATION "/usr/bin/" PERMISSIONS WORLD_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ) # 注意权限 普通用户也能执行的话是 WORLD_EXECUTE

在 cmake .. 之后,不是 make ,而是 sudo make install 。以为复制到系统所以要sudo 权限。

转载于:https://www.cnblogs.com/tttfu/p/11362402.html

最新回复(0)