目录
cmake基础使用 介绍安装开始带有install属性的CMakeLists.txtCMake是一个比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也是用它编译的,感兴趣的可以试用一下。
我这里使用的是 Visual Studio Code ,安装cmake 相关插件。
新建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直接上了:
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