文档介绍:CMake是干什么的?
linux里面装CMake是干什么的?有什么用呢?请往下看,我们来说说CMake!
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。
一、Cmake第一个程序
•
• 2.
• 3. 执行cmake .
“.”代表的意思是当前目录, 文件
• ,生成Makefile
• 5. 执行make
二、Cmake语法详解
•
PROJECT(projectname [CXX] [C] [Java])
若是为省略[]中内容,就默认全部支持
该句话中,隐式的定义了两个变量,,里面有各种刚刚系统配置的变量内容,下面我们查看两个隐藏变量的内容:
• 2. ADD_EXECUTABLE
生成可执行文件,可以忽略后缀
语法:
( [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] source1 [source2 ...])
2. add_executable( IMPORTED [GLOBAL])
3. add_executable( ALIAS )
具体更详细的可查看官网内容说明:
网址:
https:///cmake/help/?highlight=mand:add_executable
• 3. 设置变量
语法:
SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
•
语法:
message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]
"message to display" ...)
当执行CMake的命令的时候,stdout里会显示STATUS消息,而stderr上显示其他error消息。
而cmake的gui程序则会在log里显示错误信息。如下图:
以下是message其他参数内容
STATUS = 非重要消息;
WARNING = CMake 警告, 会继续执行;
AUTHOR_WARNING = CMake 警告(dev), 会继续执行;
SEND_ERROR = CMake 错误, 继续执行,但是会跳过生成的步骤;
FATAL_ERROR = CMake 错误, 终止所有处理过程;
•
ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
增加源目录,二进制目录
•
更改EXECUTABLE_OUTPUT_PATH 和 LIBRARY_OUTPUT_PATH两变量内容
把生成可执行文件目录更改为工程目录的bin文件下,效果如下:
• install,需要指定make install 目录
执行cmake命令,更改输出目录:
cmake –D CMAKE_PREFIX_FILE=/usr/local
前面的只是单独的指定目录,现在,指定需要make install的内容。
语法:
install(TARGETS targets... [EXPORT ]
[[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|
PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
[DESTINATION
][PERMISSIONS permissions...]
[CONFIGURATION][Debug|Release|...]][COMPONEN