软件介绍/功能
软件特色
1、CMake可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。
2、支持in-place建构(二进档和源代码在同一个目录树中)和out-of-place建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。
3、CMake 也支持静态与动态程式库的建构。“CMake”这个名字是“cross platform make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。
使用方法
单个源文件工程
1、源文件编写
假设项目test中只有一个main.cpp源文件,程序用途是计算一个数的指数幂。
#include
#include
/**
* power - Calculate the power of number.
* @param base: Base value.
* @param exponent: Exponent value.
*
* @return base raised to the power exponent.
*/
double power(double base, int exponent)
{
int result = base;
int i;
if (exponent == 0)
{
return 1;
}
for(i = 1; i < exponent; ++i)
{
result = result * base;
}
return result;
}
int main(int argc, char *argv[])
{
if(argc < 3)
{
printf("Usage: %s base exponent \n", argv[0]);
return 1;
}
double base = atof(argv[1]);
int exponent = atoi(argv[2]);
double result = power(base, exponent);
printf("%g ^ %d is %g\n", base, exponent, result);
return 0;
}
2、编写CMakeLists.txt
在main.cpp源文件目录test下编写CMakeLists.txt文件。
#CMake最低版本号要求
cmake_minimum_required (VERSION 2.8)
#项目信息
project (demo)
#指定生成目标
add_executable(demomain.cpp)
CMakeLists.txt由命令、注释和空格组成,其中命令是不区分大小写。符号#后的内容被认为是注释。命令由命令名称、小括号和参数组成,参数之间使用空格进行间隔。
本例中CMakeLists.txt文件的命令如下:
cmake_minimum_required:指定运行本配置文件所需的CMake的最低版本;
project:参数值是demo,表示项目的名称是demo。
add_executable:将名为main.cpp的源文件编译成一个名称为demo的可执行文件。
3、编译工程
在源码根目录下创建一个build目录,进入build目录,执行cmake ..,生成Makefile,再使用make命令编译得到demo可执行文件。
通常,建议在源码根目录下创建一个独立的build构建编译目录,将构建过程产生的临时文件等文件与源码隔离,避免源码被污染。
软件问答
什么是组态档?
组态档是用一种建构软件专用的特殊编程语言写的CMake脚本。内建C语言、C++、Fortran、Java的自动相依性分析功能。经由CMake脚本语言支持SWIG、Qt、FLTK。内建对微软Visual Studio .NET和过去的Visual Studio版本的支持,可以产生后缀为.dsp、.sln和.vcproj的文档。用传统的时间标签侦测档案内容的改变。支持平行建构(在多台电脑上同时建构)在许多操作系统上进行跨平台编译,包括Linux、POSIX相容的系统(AIX、*BSD、HP-UX、IRIX、MinGW/MSYS、Solaris系统)、Mac OS X和微软Windows 95/98/NT/2000/XP等。产生可以给Graphviz用的全局相依图。已经和Dart、CTest和CPack等软件测试和释出的工具整合。
小编寄语
CMake是一个比Make工具更高级的编译配置工具,是一个跨平台的、开源的构建系统(BuildSystem)。CMake允许开发者编写一种平台无关的CMakeList.txt文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化Makefile和工程文件,如:为Unix平台生成Makefile文件(使用GCC编译),为Windows MSVC生成projects/workspaces(使用VS IDE编译)或Makefile文件(使用nmake编译)。使用CMake作为项目架构系统的知名开源项目有VTK、ITK、KDE、OpenCV、OSG等。
历史版本
- CMake3.31.0 正式版 多语言 win7或更高版本 2024-10-21