cmake学习之-project
2024-09-03 15:36:17
一、系统版本
- cmake version: 3.5.2
- 系统版本: Ubuntun 16.04
- cmake docment: 3.14.4
- 最后更新: 2019-05-31
二、指令说明
project(<PROJECT-NAME> [<language-name>...])
project(<PROJECT-NAME>
[VERSION <major>[.<minor>[.<patch>[.<tweak>]]]]
[DESCRIPTION <project-description-string>]
[HOMEPAGE_URL <url-string>]
[LANGUAGES <language-name>...])
project
主要用于提供项目的名称、版本、使用编译语言等信息
注意:
- 在当前系统版本下面,实际上 Project 并不支持 document 提供的 DESCRIPTION
、HOMEPAGE_URL
- project 必须放在最上面, 且不能通过 include
来包含
2.1 参数解析
PROJECT-NAME:必选
- 项目名称,配置好值后,会存在
CMAKE_PROJECT_NAME
变量中
- 项目名称,配置好值后,会存在
VERSION:可选
- 版本号,主要分为 major(主版本号)、minor(次版本号)、patch(补丁版本号)、tweak, 格式为: 10.2.1.3
- 设置对应的值后,会依次解析,存在各自对应的变量里面
以 10.2.1.3 为例
名称 变量名 值 major(主版本号) PROJECT_VERSION_MAJOR 10 minor(次版本号) PROJECT_VERSION_MINOR 2 patch(补丁版本号) PROJECT_VERSION_PATCH 1 tweak PROJECT_VERSION_TWEAK 3 VERSION CMAKE_PROJECT_NAME 10.2.1.3 LANGUAGES: 可选,如果未配置,默认使用 C 以及 CXX
- 注意: 如果使用ASM(汇编),需要放在最后面
三、Coding
文件目录结构如下:
rs:cmake-project$ tree
.
├── CMakeLists.txt
├── main.cpp
└── make.sh
CMakeLists.txt 文件内容:
cmake_minimum_required(VERSION 3.5)
project(DEMO VERSION 10.2.1.3 LANGUAGES CXX C ASM )
message("CMAKE_PROJECT_NAME = ${CMAKE_PROJECT_NAME}")
message("PROJECT_VERSION = ${PROJECT_VERSION}")
message("PROJECT_VERSION_MAJOR = ${PROJECT_VERSION_MAJOR}")
message("PROJECT_VERSION_MINOR = ${PROJECT_VERSION_MINOR}")
message("PROJECT_VERSION_PATCH = ${PROJECT_VERSION_PATCH}")
message("PROJECT_VERSION_TWEAK = ${PROJECT_VERSION_TWEAK}")
add_executable(DEMO main.cpp)
**main.cpp ** 文件内容
#include <iostream>
using namespace std;
int main(int argv, const char *argc[])
{
cout << "hello world" << endl;
return 0;
}
make.sh 保存一些指令(这个非必须)
#!/bin/sh
rm -rf CMakeFiles
cmake ./
make
./DEMO
3.1 运行 sh make.sh
- 终端显示:
.....
CMAKE_PROJECT_NAME = DEMO
PROJECT_VERSION = 10.2.1.3
PROJECT_VERSION_MAJOR = 10
PROJECT_VERSION_MINOR = 2
PROJECT_VERSION_PATCH = 1
PROJECT_VERSION_TWEAK = 3
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rs/Documents/study/cmake-project
Scanning dependencies of target DEMO
[ 50%] Building CXX object CMakeFiles/DEMO.dir/main.cpp.o
[100%] Linking CXX executable DEMO
[100%] Built target DEMO
hello world
rs:cmake-project$
四、参考链接
https://cmake.org/cmake/help/latest/command/project.html
五、 遗留问题
DESCRIPTION
以及 HOMEPAGE_URL
暂时不支持,不知道使用!
最新文章
- 使用KRPano资源分析工具强力加密KRPano项目(XML防破解,切片图保护,JS反调试)
- PHP5不重新编译,如何安装自带的未安装过的扩展,如soap扩展?
- Atitit Gaussian Blur&#160;高斯模糊&#160;的原理and实现and 用途
- SQL Server 优化器特性导致的内存授予相关BUG
- 相对路径获取项目文件 及报错 No mapping found for HTTP request with URI XXX in DispatcherServlet with name ‘springmvc’解决方法
- java synchronized类锁,对象锁详解(转载)
- iOS蓝牙4.0协议简单介绍
- Revit 2015 API 的全部变化和新功能
- ubuntu 学习笔记2--安装tomcat
- 视频播放—— H5同层播放器接入规范
- UIManager
- hive 非等值连接, 设置hive为nonstrict模式
- Python股票分析系列——基础股票数据操作(一).p3
- Discuz! X3 全新安装图文教程
- linux:基本概念和操作
- Core Animation之基础介绍
- The type org.apache.commons.cli.Options cannot be resolved. It is indirectly referenced from required .class files
- knn手写识别
- Linux:安装git
- Win10/Server2016镜像集成离线补丁