欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Cmake 命令 cmake_minimum_required

最编程 2024-03-25 19:18:38
...

举例说明

1. 假设当前的cmake版本为3.10.2

>cmake --version
cmake version 3.10.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

示1.1:指定了min,且比当前cmake版本低

# CMakeLists.txt文件
cmake_minimum_required (VERSION 2.8.0)

# 执行结果
>cmake .
-- Configuring done
-- Generating done
-- Build files have been written to:XXXXXX

示例1.2:指定了min,且比当前的cmake版本高

# CMakeLists.txt 文件
cmake_minimum_required (VERSION 3.12.0)

# 执行结果
>cmake .
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
CMake 3.12.0 or higher is required.  You are running version 3.10.2

-- Configuring incomplete, errors occurred!

示例1.3:指定了min,也指定了max实际上由于当前环境的cmake版本低于3.12,因此...max是会被忽略的

# CMakeLists.txt 文件
cmake_minimum_required (VERSION 3.10.0...3.12.0)

# 执行结果
>cmake .
-- Configuring done
-- Generating done
-- Build files have been written to:XXXXXX

2. 假设当前的cmake版本为3.18.2

>cmake --version
cmake version 3.18.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

  当只指定min的时候,结果和示例1.1、示例1.2一致。如果同时也指定了max,有如下几种情况:
示2.1:指定了max,且比min版本低

# CMakeLists.txt文件
cmake_minimum_required (VERSION 3.12.2...3.10.2)

# 执行结果,会提示错误
>cmake .
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
Policy VERSION range "3.12.2...3.10.2" specifies a larger minimum than
maximum.

示2.2:指定了max,高于min且比当前运行的cmake版本高

# CMakeLists.txt文件
cmake_minimum_required (VERSION 3.12.2...3.19.2)

# 执行结果
>cmake .
-- Configuring done
-- Generating done
-- Build files have been written to:XXXXXX

示2.3:指定了max,高于min且比当前运行的cmake版本低

# CMakeLists.txt文件
cmake_minimum_required (VERSION 3.12.2...3.16.2)

# 执行结果
>cmake .
-- Configuring done
-- Generating done
-- Build files have been written to:XXXXXX