CMake中文版下载-cmake开发工具 v1.0 最新版下载

cmake开发工具 v1.0 最新版

大小:31.5MB 时间:2021-03-12

语言:简体中文 环境:Win All

简介

CMake中文版是一款功能强大的编译软件。CMake免费版主要是针对于从事编程行业相关人员所打造的,用户可以通过该软件带来一定的便利,给你一个更加舒适安静的编程环境,大大提高了你的编程效率。

CMake绿色版有着极强的兼容性,可以同时输出多样的makefile与project文件,而且操作十分简单,主要是用来构建、测试打包、测试C++特性等等,轻松控制软件进行独立配置,十分方便。

CMake

CMake介绍

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的CMake,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的CMake,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

CMake特色

1.开放源代码,使用类 BSD 许可发布。

2.跨平台,并可生成 native 编译配置文件,在 Linux/Unix 平台,生成 makefile,在 苹果平台,可以生成 xcode,在 Windows 平台,可以生成 MSVC 的工程文件。

3.能够管理大型项目,KDE4 就是最好的证明。

4.简化编译构建过程和编译过程。Cmake 的工具链非常简单:cmake+make。

5.高效率,按照 KDE 官方说法,CMake 构建 KDE4 的 kdelibs 要比使用 autotools 来 构建 KDE3.5.6 的 kdelibs 快 40%,主要是因为 Cmake 在工具链中没有 li^ool。

6.可扩展,可以为 cmake 编写特定功能的模块,扩充 cmake 功能。

组态档

组态档是用一种建构CMake专用的特殊编程语言写的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测试和释出的工具整合。

使用特色

使用方法

CMake的所有的语句都写在一个叫:CMakeLists.txt 的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对相关 的变量值进行配置。这个命令必须指向CMakeLists.txt所在的目录。配置完成之后,应用cmake命令生成相应的makefile(在Unix like系统下)或者 project文件(指定用window下的相应编程工具编译时)。

其基本操作流程为:

$> ccmake directory

$> cmake directory

$> make

其中directory为CMakeList.txt所在目录;

第一条语句用于配置编译选项,如VTK_DIR目录 ,一般这一步不需要配置,直接执行第二条语句即可,但当出现错误时,这里就需要认为配置了,这一步才真正派上用场;

第二条命令用于根据CMakeLists.txt生成Makefile文件;

第三条命令用于执行Makefile文件,编译程序,生成可执行文件;

CMake的执行就是这么简单,其难点在于如何编写CMakeLists.txt文件,下面结合例子简单介绍CMakeLists.txt的编写,看下面这个CMakeLists.txt

#project name

PROJECT(test_math)

#head file path

INCLUDE_DIRECTORIES(

include

)

#source directory

AUX_SOURCE_DIRECTORY(src DIR_SRCS)

#set environment variable

SET(TEST_MATH

${DIR_SRCS}

)

#set extern libraries

SET(LIBRARIES

libm.so

)

#add executable file

ADD_EXECUTABLE(../bin/bin ${TEST_MATH})

#add link library

TARGET_LINK_LIBRARIES(../bin/bin ${LIBRARIES})

或者用下面这个CMakeLists.txt

#project name

PROJECT(test_math)

#head file path

INCLUDE_DIRECTORIES(

include

)

#source directory

AUX_SOURCE_DIRECTORY(src DIR_SRCS)

#set environment variable

SET(TEST_MATH

${DIR_SRCS}

)

#add executable file

ADD_EXECUTABLE(../bin/bin ${TEST_MATH})

#add link library

TARGET_LINK_LIBRARIES(../bin/bin m)

这是一个测试数学函数的程序的CMakeLists.txt,"#"后面为注释的内容,CMake的命令全部为大写

第2行指定生成的工程名为test_math

第4行指定头文件目录为include

第8行指定源文件目录为src,并将其赋值给环境变量DIR_SRCS

第10行设定环境变量TEST_MATH的值为环境变量DIR_SRCS的值,此处用于显示如何用环境变量对环境变量进行赋值

第14行将数学函数库赋值给环境变量LIBRARIES,当然,可以不用这个环境变量,而在后面直接使用该库名

第18行用于指定生成文件,将环境变量TEST_MATH目录下的所有文件编译生成../bin目录下的可执行文件bin

第20行指定../bin/bin执行时的链接库为环境变量LIBRARIES的值-libm.so

下面给出源文件

/src/main.c:

#include<stdio.h>

#include"../include/a.h"

int main()

{

double b=25.0;

double a=0.0;

a=get_sqrt(b);

printf("a is %lf, b is %lf\n",a,b);

return 0;

}

/src/a.c

#include"../include/a.h"

double get_sqrt(double var1)

{

return sqrt(var1);

}

/include/a.h

#ifndef A_FILE_HEADER_INC

#define A_FILE_HEADER_INC

#include<math.h>

double get_sqrt(double var1);

#endif

将CMakeLists.txt放在当前目录下,执行CMakeLists.txt

$> cmake .

$> make

即可生成可执行文件,在目录/bin下的bin文件,好了运行看其效果是否和所想一样。

使用方法

使用教程

配置

从本站下载cmake后,我们可以在下载路径得到一个压缩包,如图所示,解压此压缩包,解压缩有我们可以得到下图所示的文件。下面我们开始配置cmake。

进入电脑属性

在此电脑上右键单击,打开右键菜单,点击属性菜单,如图所示。

进入高级系统设置

在属性页面,我们在左边可以看到高级系统设置选项,如图所示,点击高级系统设置,进入高级系统设置页面。

进入环境变量设置

在高级系统设置页面,可以找到环境变量选项,如图所示,点击环境变量,进入环境变量页面。

进入path变量

在环境变量页面,我们可以看到“系统变量”框,在系统变量部分,我们可以找到path变量,如图所示,双击path变量。打开path变量设置窗口。

设置path变量

打开path变量设置窗口后,将刚才解压的文件所在路径复制,然后点击“新建”,在新的栏目中粘贴路径,点击“确定”即可。

验证配置是否成功

在命令行输入"cmake --version",如果输出如图所示,即配置成功。

编译

运行GUI的cmake界面:

执行Configure:

运行之后,生成了如下文件:

生成Makefile:

执行Generate之后生成如下文件:

运行make进行编译:

编译完成后,在build目录生成Tutorial.exe,运行Tutorial.exe 25就可以看到运行结果:

运行make install安装程序:

运行make test进行测试:

使用教程

常见问题

CMake缓存是什么?

用户在第一次运行CMakeCMake时,它会生成一个CMakeCache.txt文件。此文件包含诸如本机JPEG库的存在和位置之类的内容。

添加条目以响应某些CMake命令(例如FIND_LIBRARY),因为它们在源树中的所有地方在CMakeLists文件中的所有地方处理。

在CMake运行后,并创建了一个CMakeCache.txt文件 - 你可以编辑它。CMake GUI,将允许您轻松地编辑选项,或者您可以直接编辑文件。

编辑缓存的主要原因是给予CMake本地库(如JPEG)的位置,或者阻止它使用本地库并在源代码树中使用库的版本。

CMake不能改变缓存文件本身中的现有条目。如果您的CMakeLists.txt文件变化显着,您将需要从缓存文件中删除相关条目。如果你还没有手动编辑缓存文件,你可以删除它,而后重新运行CMake。

cmake如何处理路径包含头文件?

CMake中,添加头文件路径,对应的函数叫includ。然后在参数中,把所有需要添加的路径,加进去就可以了。

添加库路径,对应的函数叫LINK_DIR,同样,在参数中,把所有的路径加进去就可以了。

CMake中的函数调用,是不区分大小写的,大小写可以混合使用。

添加库,对应的函数叫LINK_LIBR,把所有的库加进去即可。这

里有一个注意事项,这个不需要我们手动添加.lib这个后缀了,挺方便的。

然后执行CMake,生成内容。然后这里需要切换到Rele版本,进行编译。生成成功并运行。

查看之所以Debug版本编译有问题,发现依赖库为osg.lib而不是osgd.lib,也就是说依赖库是Rele版的。

为何要使用项目构建工具?

为何要使用cmake和autotools之类的项目构建工具? 我想,这恐怕是刚刚接触CMake项目的人最应该问的问题之一了。

“Hello, world!“这个最经典的程序相信我们每个人都写过。无论在什么平台下,编译和运行这个程序都仅需要非常简单的操作。但事实上,hello,world最多只能算是一个实例程序,根本算不上一个真正的CMake项目。

任何一个CMake项目,除了写代码之外,还有一个更为重要的任务,就是如何组织和管理这些代码,使项目代码层次结构清晰易读,这对以后的维护工作大有裨益。使想一下,如果把一个像KDE4那么大的项目像hello world那样,把全部代码都放到一个main.cpp文件中,那将会是多么恐怖的一件事情。别说KDE4,就是我们随便一个几千行代码的小项目,也不会有人干这种蠢事。

决定代码的组织方式及其编译方式,也是程序设计的一部分。因此,我们需要cmake和autotools这样的工具来帮助我们构建并维护项目代码。

看到这里,也许你会想到makefile,makefile不就是管理代码自动化编译的工具吗?为什么还要用别的构建工具?

其实,cmake和autotools正是makefile的上层工具,它们的目的正是为了产生可移植的makefile,并简化自己动手写makefile时的巨大工作量。如果你自己动手写过makefile,你会发现,makefile通常依赖于你当前的编译平台,而且编写makefile的工作量比较大,解决依赖关系时也容易出错。因此,对于大多数项目,应当考虑使用更自动化一些的cmake或者autotools来生成makefile,而不是上来就动手编写。

厂商名称:

官网:

编译软件

推荐下载

特色标签

精彩合集,奇葩无下限 更多

相关文章