这记录了旧版本的CMake。 单击此处查看最新版本。或者,从上面的下拉菜单中选择一个版本。

cmake(1)

概要

cmake [<options>] (<path-to-source> | <path-to-existing-build>)
cmake [(-D <var>=<value>)...] -P <cmake-script-file>
cmake --build <dir> [<options>...] [-- <build-tool-options>...]
cmake --open <dir>
cmake -E <command> [<options>...]
cmake --find-package <options>...

说明

“cmake”可执行文件是CMake命令行界面。它可用于在脚本中配置项目。可以使用-D选项在命令行上指定项目配置设置。

CMake是一个跨平台的构建系统生成器。项目使用名称为CMakeLists.txt的源树的每个目录中包含的与平台无关的CMake列表文件指定其构建过程。用户使用CMake在其平台上为本机工具生成构建系统来构建项目。

选项

-C <initial-cache>

预加载脚本以填充缓存。

当cmake首次在空构建树中运行时,它会创建一个CMakeCache.txt文件,并使用项目的可自定义设置填充它。此选项可用于指定在第一次通过项目的cmake listfiles之前从中加载缓存条目的文件。加载的条目优先于项目的默认值。给定文件应该是包含使用CACHE选项的SET命令的CMake脚本,而不是缓存格式文件。

-D <var>:<type>=<value>, -D <var>=<value>

创建一个cmake缓存条目。

当cmake首次在空构建树中运行时,它会创建一个CMakeCache.txt文件,并使用项目的可自定义设置填充它。此选项可用于指定优先于项目默认值的设置。可以根据需要针对尽可能多的高速缓存条目重复该选项。

如果:<type>给出该部分,则它必须是由指定的类型之一set()命令文档的 CACHE签名。如果:<type>省略该部分,则如果条目已不存在,则将创建没有类型的条目。如果项目中的命令将类型设置为PATHFILEPATH 然后<value>将转换为绝对路径。

此选项也可以作为单个参数给出: -D<var>:<type>=<value>-D<var>=<value>

-U <globbing_expr>

从CMake缓存中删除匹配的条目。

此选项可用于从CMakeCache.txt文件中删除一个或多个变量,使用*和?表示表达式。得到支持。可以根据需要针对尽可能多的高速缓存条目重复该选项。

小心使用,可以使您的CMakeCache.txt无法正常工作。

-G <generator-name>

指定构建系统生成器。

CMake可能在某些平台上支持多个本机构建系统。生成器负责生成特定的构建系统。可能的生成器名称在。中指定 cmake-generators(7) 手册。

-T <toolset-spec>

如果支持,则生成器的工具集规范。

一些CMake生成器支持工具集规范,以告诉本机构建系统如何选择编译器。见 CMAKE_GENERATOR_TOOLSET 变量的详细信息。

-A <platform-name>

如果生成器支持,请指定平台名称。

一些CMake生成器支持为本机构建系统提供的平台名称,以选择编译器或SDK。见 CMAKE_GENERATOR_PLATFORM 变量的详细信息。

-Wno-dev

抑制开发人员警告。

禁止针对CMakeLists.txt文件的作者的警告。默认情况下,这也会关闭弃用警告。

-Wdev

启用开发人员警告。

启用适用于CMakeLists.txt文件作者的警告。默认情况下,这也会启用弃用警告。

-Werror=dev

使开发人员警告错误。

发出针对CMakeLists.txt文件作者错误的警告。默认情况下,这也会将已弃用的警告设置为错误。

-Wno-error=dev

使开发人员警告不是错误。

针对CMakeLists.txt文件的作者发出的警告不是错误。默认情况下,这也会将已弃用的警告作为错误关闭。

-Wdeprecated

启用已弃用的功能警告。

启用警告以使用已弃用的功能,这些功能适用于CMakeLists.txt文件的作者。

-Wno-deprecated

禁止弃用功能警告。

禁止使用已弃用的功能的警告,这些功能适用于CMakeLists.txt文件的作者。

-Werror=deprecated

使弃用的宏和函数警告错误。

对使用不推荐使用的宏和函数发出警告,这些宏和函数适用于CMakeLists.txt文件的作者,错误。

-Wno-error=deprecated

弃用的宏和函数警告不是错误。

对使用不推荐使用的宏和函数发出警告,这些宏和函数适用于CMakeLists.txt文件的作者,而不是错误。

-E <command> [<options>...]
请参阅命令行工具模式
-L[A][H]

列出非高级缓存变量。

列表缓存变量将运行CMake并列出CMake缓存中未标记为INTERNAL或ADVANCED的所有变量。这将有效地显示当前的CMake设置,然后可以使用-D选项进行更改。更改某些变量可能会导致创建更多变量。如果指定了A,则它还将显示高级变量。如果指定了H,它还将显示每个变量的帮助。

--build <dir>
请参阅构建工具模式
--open <dir>
在关联的应用程序中打开生成的项目。这仅由一些发电机支持。
-N

仅查看模式。

仅加载缓存。实际上不要运行configure和生成步骤。

-P <file>

处理脚本模式。

将给定的cmake文件处理为以CMake语言编写的脚本。不执行配置或生成步骤,并且不修改缓存。如果使用-D定义变量,则必须在-P参数之前完成。

--find-package
请参阅查找包装工具模式
--graphviz=[file]

生成依赖关系的graphviz,请参阅 CMakeGraphVizOptions 更多。

生成graphviz输入文件,该文件将包含项目中的所有库和可执行依赖项。请参阅文档 CMakeGraphVizOptions 更多细节。

--system-information [file]

转储有关此系统的信息。

转储有关当前系统的各种信息。如果从CMake项目的二叉树顶部运行,它将转储其他信息,如缓存,日志文件等。

--debug-trycompile

不要删除try_compile构建树。仅在一次try_compile上有用。

不要删除为try_compile调用创建的文件和目录。这在调试失败的try_compiles时很有用。然而,它可能会改变try-compiles的结果,因为之前的try-compile中的旧垃圾可能导致不同的测试无法正确通过或失败。此选项最好一次用于一次try-compile,并且仅在调试时使用。

--debug-output

将cmake置于调试模式。

在cmake运行期间打印额外信息,如带有消息(send_error)调用的堆栈跟踪。

--trace

将cmake置于跟踪模式。

打印所有来电的跟踪记录。

--trace-expand

将cmake置于跟踪模式。

喜欢--trace,但变量扩大了。

--trace-source=<file>

将cmake置于跟踪模式,但仅输出指定文件的行。

允许多个选项。

--warn-uninitialized

警告未初始化的值。

使用未初始化的变量时打印警告。

--warn-unused-vars

警告未使用的变量。

查找已声明或已设置但未使用的变量。

--no-warn-unused-cli

不要警告命令行选项。

找不到在命令行上声明但未使用的变量。

--check-system-vars

查找系统文件中变量使用的问题。

通常,仅在CMAKE_SOURCE_DIR和CMAKE_BINARY_DIR中搜索未使用和未初始化的变量。该标志告诉CMake也警告其他文件。

--help,-help,-usage,-h,-H,/?

打印使用信息并退出。

用法描述了基本的命令行界面及其选项。

--version,-version,/V [<f>]

显示程序名称/版本标题并退出。

如果指定了文件,则会将版本写入其中。如果给出,帮助将打印到命名的<f> ile。

--help-full [<f>]

打印所有帮助手册并退出。

所有手册均以人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-manual <man> [<f>]

打印一份帮助手册并退出。

指定的手册以人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-manual-list [<f>]

列出可用的帮助手册并退出。

该列表包含所有可通过使用--help-manual选项后跟手册名称获得帮助的手册。如果给出,帮助将打印到命名的<f> ile。

--help-command <cmd> [<f>]

打印一个命令的帮助并退出。

该 cmake-commands(7)手动输入以<cmd>人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-command-list [<f>]

列出命令并提供帮助并退出。

该列表包含可以通过使用--help-command选项后跟命令名称获得帮助的所有命令。如果给出,帮助将打印到命名的<f> ile。

--help-commands [<f>]

打印cmake-commands手册并退出。

该 cmake-commands(7)手册以人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-module <mod> [<f>]

打印一个模块的帮助并退出。

该 cmake-modules(7)手动输入以<mod>人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-module-list [<f>]

列出提供帮助的模块并退出。

该列表包含所有可通过使用--help-module选项后跟模块名称获取帮助的模块。如果给出,帮助将打印到命名的<f> ile。

--help-modules [<f>]

打印cmake-modules手册并退出。

该 cmake-modules(7)手册以人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-policy <cmp> [<f>]

打印一个策略的帮助并退出。

该 cmake-policies(7)手动输入以<cmp>人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-policy-list [<f>]

列出可获得帮助的政策并退出。

该列表包含使用--help-policy选项后跟策略名称可获取帮助的所有策略。如果给出,帮助将打印到命名的<f> ile。

--help-policies [<f>]

打印cmake-policies手册并退出。

该 cmake-policies(7)手册以人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-property <prop> [<f>]

打印一个属性的帮助并退出。

该 cmake-properties(7)手动条目以<prop>人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-property-list [<f>]

列出可用帮助的属性并退出。

该列表包含可以通过使用--help-property选项后跟属性名称获得帮助的所有属性。如果给出,帮助将打印到命名的<f> ile。

--help-properties [<f>]

打印cmake-properties手册并退出。

该 cmake-properties(7)手册以人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-variable <var> [<f>]

打印一个变量的帮助并退出。

该 cmake-variables(7)手动输入以<var>人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

--help-variable-list [<f>]

列出变量并提供帮助并退出。

该列表包含可以通过使用--help-variable选项后跟变量名称获得帮助的所有变量。如果给出,帮助将打印到命名的<f> ile。

--help-variables [<f>]

打印cmake-variables手动并退出。

该 cmake-variables(7)手册以人类可读的文本格式打印。如果给出,帮助将打印到命名的<f> ile。

构建工具模式

CMake提供命令行签名来构建已生成的项目二叉树:

cmake --build <dir> [<options>...] [-- <build-tool-options>...]

这将使用以下选项抽象本机构建工具的命令行界面:

--build <dir>
要构建的项目二进制目录。这是必需的,必须先行。
--target <tgt>
构建<tgt>而不是默认目标。只能指定一次。
--config <cfg>
对于多配置工具,请选择配置<cfg>
--clean-first
clean首先构建目标,然后构建。(仅限清洁,请使用。)--target clean
--use-stderr
忽略。行为在CMake> = 3.0中是默认的。
--
将剩余选项传递给本机工具。

没有选项可以运行以获得快速帮助。cmake --build

命令行工具模式

CMake通过签名提供内置命令行工具:

cmake -E <command> [<options>...]

运行或获取命令摘要。可用的命令是:cmake -Ecmake -E help

capabilities

以JSON格式报告cmake功能。输出是一个带有以下键的JSON对象:

version

带有版本信息的JSON对象。钥匙是:

string
cmake显示的完整版本字符串--version
major
整数形式的主要版本号。
minor
整数形式的次要版本号。
patch
整数形式的补丁级别。
suffix
cmake版本后缀字符串。
isDirty
如果cmake构建来自脏树,则设置bool。
generators

列表可用的生成器。每个生成器都是一个JSON对象,具有以下键:

name
包含生成器名称的字符串。
toolsetSupport
true如果生成器支持工具集,false否则。
platformSupport
true如果发电机支持平台,false否则。
extraGenerators
包含与生成器兼容的所有额外生成器的字符串列表。
serverMode
true如果cmake支持服务器模式,false否则。
chdir <dir> <cmd> [<arg>...]
更改当前工作目录并运行命令。
compare_files <file1> <file2>
检查是否<file1>相同<file2>。如果文件相同,则返回0,否则返回1。
copy <file>... <destination>
将文件复制到<destination>(文件或目录)。如果指定了多个文件,则<destination>必须是目录且必须存在。不支持通配符。
copy_directory <dir>... <destination>
将目录复制到<destination>目录。如果<destination>目录不存在,则将创建该目录。
copy_if_different <file>... <destination>
<destination>如果文件已更改,则将文件复制到(文件或目录)。如果指定了多个文件,则<destination>必须是目录且必须存在。
echo [<string>...]
将参数显示为文本。
echo_append [<string>...]
将参数显示为文本但不显示新行。
env [--unset=NAME]... [NAME=VALUE]... COMMAND [ARG]...
在修改后的环境中运行命令。
environment
显示当前环境变量。
make_directory <dir>...
创建<dir>目录。如有必要,也可以创建父目录。如果目录已存在,则将以静默方式忽略。
md5sum <file>...

md5sum兼容格式创建文件的MD5校验和:

351abe79cd3800b38cdfb25d45015a15  file1.txt
052f86c15bbde68af55c7f7b340ab639 file2.txt
sha1sum <file>...

sha1sum兼容格式创建文件的SHA1校验和:

4bb7932a29e6f73c97bb9272f2bdc393122f86e0  file1.txt
1df4c8f318665f9a5f2ed38f55adadb7ef9f559c file2.txt
sha224sum <file>...

sha224sum兼容格式创建SHA224校验和文件:

b9b9346bc8437bbda630b0b7ddfc5ea9ca157546dbbf4c613192f930  file1.txt
6dfbe55f4d2edc5fe5c9197bca51ceaaf824e48eba0cc453088aee24 file2.txt
sha256sum <file>...

sha256sum兼容格式创建SHA256校验和文件:

76713b23615d31680afeb0e9efe94d47d3d4229191198bb46d7485f9cb191acc  file1.txt
15b682ead6c12dedb1baf91231e1e89cfc7974b3787c1e2e01b986bffadae0ea file2.txt
sha384sum <file>...

sha384sum兼容格式创建SHA384校验和文件:

acc049fedc091a22f5f2ce39a43b9057fd93c910e9afd76a6411a28a8f2b8a12c73d7129e292f94fc0329c309df49434  file1.txt
668ddeb108710d271ee21c0f3acbd6a7517e2b78f9181c6a2ff3b8943af92b0195dcb7cce48aa3e17893173c0a39e23d file2.txt
sha512sum <file>...

sha512sum兼容格式创建SHA512校验和文件:

2a78d7a6c5328cfb1467c63beac8ff21794213901eaadafd48e7800289afbc08e5fb3e86aa31116c945ee3d7bf2a6194489ec6101051083d1108defc8e1dba89  file1.txt
7a0b54896fe5e70cca6dd643ad6f672614b189bf26f8153061c4d219474b05dad08c4e729af9f4b009f1a1a280cb625454bf587c690f4617c27e3aebdf3b7a2d file2.txt
remove [-f] <file>...
删除文件。如果任何列出的文件已不存在,则该命令将返回非零退出代码,但不会记录任何消息。该-f选项改变行为以在这种情况下返回零退出代码(即成功)。
remove_directory <dir>
删除目录及其内容。如果目录不存在,它将被静默忽略。
rename <oldname> <newname>
重命名文件或目录(在一个卷上)。
server
发射 cmake-server(7) 模式。
sleep <number>...
睡眠给定的秒数。
tar [cxt][vf][zjJ] file.tar [<options>...] [--] [<file>...]

创建或提取tar或zip存档。选项包括:

--
停止解释选项并将所有剩余参数视为文件名,即使它们开始-
--files-from=<file>
从给定文件中读取文件名,每行一个。空行被忽略。- 除了--add-file=<name>添加名称以其开头的文件外,行可能无法启动-
--mtime=<date>
指定tarball条目中记录的修改时间。
--format=<format>
指定要创建的存档的格式。支持的格式有:7zipgnutarpax, paxr(限制PAX,默认值),和zip
time <command> [<args>...]
运行命令并显示已用时间。
touch <file>
触摸文件。
touch_nocreate <file>
触摸文件(如果存在)但不创建它。如果文件不存在,则会以静默方式忽略。

特定于UNIX的命令行工具

以下命令仅在UNIX上可用:cmake -E

create_symlink <old> <new>
创建符号链接<new>命名<old>

注意

<new>创建符号链接的路径必须事先存在。

特定于Windows的命令行工具

以下命令仅在Windows上可用:cmake -E

delete_regv <key>
删除Windows注册表值。
env_vs8_wince <sdkname>
显示批处理文件,该文件为VS2005中安装的Windows CE SDK设置环境。
env_vs9_wince <sdkname>
显示批处理文件,该文件为VS2008中安装的Windows CE SDK设置环境。
write_regv <key> <value>
写Windows注册表值。

查找包工具模式

CMake为基于Makefile的项目提供了一个帮助程序,其签名如下:

cmake --find-package <options>...

它以类似pkg-config的模式运行。

使用搜索包 find_package()并将生成的标志打印到stdout。这可以用于使用cmake而不是pkg-config来查找基于Makefile的纯项目或基于autoconf的项目(via share/aclocal/cmake.m4)中的已安装库。

注意

由于某些技术限制,此模式不受支持。它保持兼容性,但不应在新项目中使用。

另见

以下资源可用于使用CMake获取帮助:

主页

https://cmake.org

了解CMake的主要出发点。

经常问的问题

https://cmake.org/Wiki/CMake_FAQ

提供Wiki,其中包含常见问题的答案。

在线文档

https://cmake.org/documentation

可在此网页上找到可用文档的链接。

邮件列表

https://cmake.org/mailing-lists

有关使用cmake的帮助和讨论,cmake @ cmake提供了一个邮件列表组织。该列表仅限会员,但可以在CMake网页上注册。在将问题发布到列表之前,请先阅读https://cmake.org上的完整文档。

 
©版权所有2000-2018 Kitware,Inc。和贡献者。使用Sphinx 1.7.2 创建。

cmake-cmake.1-3.11.4机翻的更多相关文章

  1. cmake-index-3.11.4机翻

    index next | CMake » git-stage git-master latest release 3.13 3.12 3.11.4 3.10 3.9 3.8 3.7 3.6 3.5 3 ...

  2. 九度oj题目&amp;吉大考研11年机试题全解

    九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码).    http://ac.jobdu.com/problem.php?pid=11 ...

  3. 谷歌机翻英文字幕输出(Subtitle Edit)

    Subtitle Edit 下载地址(https://github.com/SubtitleEdit/subtitleedit/releases/tag/3.5.0) 添加字幕文件后,点下图的Auto ...

  4. [机翻] WIRER ON THE WIRE - SIGNALR协议的非正式描述

    原文 原文很简单,以下为机翻 WIRER ON THE WIRE - SIGNALR协议的非正式描述 我已经看到询问有关SignalR协议的描述的问题出现了很多.哎呀,当我开始关注SignalR时,我 ...

  5. linux cmake 安装mysql5.5.11,以及更高版本

    1.下载mysql5.5.12和cmake wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.12-linux2.6-i686.tar.gz ...

  6. CentOS_5.6下使用cmake编译MySQL_5.5.11

    MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采用这种方式,网上找了一些安装方法有些地方是错的,自己整理一份 所以特地记录一下安装步骤及过程,以供参考!1 mysql 5 ...

  7. CentOS_5.6下使用cmake编译MySQL_5.5.11教程

    注:资料来自网络    Centos 5.6编译安装mysql 5.5.11 2011年06月24日 星期五 05:33 MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采 ...

  8. (转)HelloWorld CMake CMake中构建静态库与动态库及其使用

    继续完善Hello World,建立它的共享库, 包括静态库和动态库. 本节的任务: 1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello ...

  9. redis3.2.11多机多实例集群部署及测试连接情况

    机器配置 redis3.2.11安装配置规划 机器 192.168.169.136(本机虚拟机1) 192.168.169.137(本机虚拟机2) 系统 Red Hat Enterprise Linu ...

随机推荐

  1. linux SVN添加新用户

    首先找到用户文件:authz.conf; 用vi 编辑authz.conf文件在develps 后面添加你要添加的用户名:如图:  上图:cheny就是我后面添加上去的用户名 按Esc :wq保存au ...

  2. 2019年,iOS开发的你不可或缺的进阶之路!

    序言 我相信很多人都在说,iOS行业不好了,iOS现在行情越来越难了,失业的人比找工作的人还要多.失业即相当于转行,跳槽即相当于降低自己的身价.那么做iOS开发的你,你是否在时刻准备着跳槽或者转行了. ...

  3. 校内胡策 T9270 mjt树

    题目背景 从前森林里有一棵很大的mjt树,树上有很多小动物. 题目描述 mjt树上有 n 个房间,第 i 个房间住着 ai 只第bi 种小动物. 这n个房间用n-1条路连接起来,其中房间1位mjt树的 ...

  4. transition(过渡)

    transition:过渡 渡过渡原理:原始状态a状态-向-最终结束状态b状态 格式:transition: all 1s linear; 过渡的四个参数: 1.参与过渡的属性(属性(width)/a ...

  5. 关于虚拟机linux网络的一个问题(基于cntos7)

    刚刚开始学习搭建Linux集群,目前出现的比较麻烦的一个问题是Linux网络ip问题.其实网上好多出现类似问题的解答大部分说是因为克隆的问题,但实际情况先克隆产生的问题应该是很好排查的.所幸,有博主针 ...

  6. 智能家居系统 Home Assistant 系列 --介绍篇

    一. HomeAssistant 是什么? HomeAssistant是构建智慧空间的神器.是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation).群组化 ...

  7. TCP交互流程

    前言:在FPGA上实现TCP协议实际是一个不太好的计划,因为FPGA最擅长的是流水线处理方式,而TCP存在交互,导致FPGA需要进行反馈式的处理.但是由于项目新增的附加要求而又只能在FPGA上去实现T ...

  8. PAT甲级 1004.Counting Leaves

    参考:https://blog.csdn.net/qq278672818/article/details/54915636 首先贴上我一开始的部分正确代码: #include<bits/stdc ...

  9. CALL TRANSACTION

    概要 SUBMITと違い.トランザクションコードで呼び出すのが特徴. アドオンからの伝票照会やバッチインプットによるSAPへのデータ登録/更新処理にも利用される. なお.呼び出された側から呼び出し元へ ...

  10. 20155232 2016-2017-3 《Java程序设计》第6周学习总结

    20155232 2016-2017-3 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 异常处理 1.从应用程序来看,如果要将数据从源取出,可以使用输入串流. 2.如果要将 ...