Cmake是什么?有什么用?在WINDOWS下如何用

作者&投稿:廉国 (若有异议请与网页底部的电邮联系)
Cmake是什么?有什么用?在WINDOWS下如何用~

CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。
总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE也是用它编译的,感兴趣的可以试用一下。

准备活动:
(1)安装cmake。
下载地址:http://www.cmake.org/cmake/resources/software.html
根据自己的需要下载相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。
Windows下CMake的使用
(2)运行cmake的方法。(GUI、命令行)
http://www.cmake.org/cmake/help/runningcmake.html

CMake使用步骤:
运行GUI的cmake界面:
cmake-2.8.1-win32-x86\bin\cmake-gui.exe
Windows下CMake的使用
执行Configure:
运行之后,生成了如下文件:
Windows下CMake的使用
生成Makefile:
执行Generate之后生成如下文件:
Windows下CMake的使用
运行make进行编译:
Windows下CMake的使用
编译完成后,在build目录生成Tutorial.exe,运行Tutorial.exe 25就可以看到运行结果:
Windows下CMake的使用
运行make install安装程序:
Windows下CMake的使用
运行make test进行测试:
Windows下CMake的使用

通过cmake tutorial学习CMake配置方法
http://www.cmake.org/cmake/help/cmake_tutorial.html
可以在源代码的Tests/Turorial目录中找到这个手册对应的代码。
Windows下CMake的使用
1、Step1。
(如果不知道如何使用cmake,以及如何使用编译产生的Turorial.exe,可先看下前面“CMake使用步骤”的说明,它以Step4为例详细介绍了使用过程,Step1的配置可能不够完全,比如无法运行make install,无法运行make test,但可以参考。)
简单的程序编译。
(1)运行GUI的cmake,指定要编译的源代码路径和二进制文件路径(会自动创建)。
Windows下CMake的使用
(2)点击Configure,配置成功后,再点击Generate。
配置需要选择合适的编译器,虽然我安装了VC2008,但没有配置成功;选择Unix Makefiles,配置成功,它自动找到了DevC++下的gcc.exe等编译器。
Windows下CMake的使用
(3)在build3目录执行make,就能够编译生成Turorial.exe了。
D:\Projects\Labestngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make
Linking CXX executable Tutorial.exe
[100%] Built target Tutorial
可以运行一下Turorial.exe:
D:\Projects\Labestngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe
Tutorial.exe Version 1.0
Usage: Tutorial.exe number
D:\Projects\Labestngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4
The square root of 4 is 2
2、Step2
把子目录编译为库,并且链接到最终的可执行文件。
include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")
add_subdirectory (MathFunctions) # 使得子目录MathFunctions也能被编译

# add the executable
add_executable (Tutorial tutorial.cxx)
target_link_libraries (Tutorial MathFunctions)
产生makefile:
在GUI上点击Configure,之后Generate还是灰色,再次点击Configure,Generate就可以点击了。
编译:

把你cmake的安装路径下的bin目录添加到PATH里面去。修改/etc/profile或者~/.bashrc

CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。
总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE也是用它编译的,感兴趣的可以试用一下。

准备活动:
(1)安装cmake。
下载地址:http://www.cmake.org/cmake/resources/software.html
根据自己的需要下载相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。
Windows下CMake的使用
(2)运行cmake的方法。(GUI、命令行)
http://www.cmake.org/cmake/help/runningcmake.html

CMake使用步骤:
运行GUI的cmake界面:
cmake-2.8.1-win32-x86\bin\cmake-gui.exe
Windows下CMake的使用
执行Configure:
运行之后,生成了如下文件:
Windows下CMake的使用
生成Makefile:
执行Generate之后生成如下文件:
Windows下CMake的使用
运行make进行编译:
Windows下CMake的使用
编译完成后,在build目录生成Tutorial.exe,运行Tutorial.exe 25就可以看到运行结果:
Windows下CMake的使用
运行make install安装程序:
Windows下CMake的使用
运行make test进行测试:
Windows下CMake的使用

通过cmake tutorial学习CMake配置方法
http://www.cmake.org/cmake/help/cmake_tutorial.html
可以在源代码的Tests/Turorial目录中找到这个手册对应的代码。
Windows下CMake的使用
1、Step1。
(如果不知道如何使用cmake,以及如何使用编译产生的Turorial.exe,可先看下前面“CMake使用步骤”的说明,它以Step4为例详细介绍了使用过程,Step1的配置可能不够完全,比如无法运行make install,无法运行make test,但可以参考。)
简单的程序编译。
(1)运行GUI的cmake,指定要编译的源代码路径和二进制文件路径(会自动创建)。
Windows下CMake的使用
(2)点击Configure,配置成功后,再点击Generate。
配置需要选择合适的编译器,虽然我安装了VC2008,但没有配置成功;选择Unix Makefiles,配置成功,它自动找到了DevC++下的gcc.exe等编译器。
Windows下CMake的使用
(3)在build3目录执行make,就能够编译生成Turorial.exe了。
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make
Linking CXX executable Tutorial.exe
[100%] Built target Tutorial
可以运行一下Turorial.exe:
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe
Tutorial.exe Version 1.0
Usage: Tutorial.exe number
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4
The square root of 4 is 2
2、Step2
把子目录编译为库,并且链接到最终的可执行文件。
include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")
add_subdirectory (MathFunctions) # 使得子目录MathFunctions也能被编译

# add the executable
add_executable (Tutorial tutorial.cxx)
target_link_libraries (Tutorial MathFunctions)
产生makefile:
在GUI上点击Configure,之后Generate还是灰色,再次点击Configure,Generate就可以点击了。
编译:

呵呵,我经常做冤大头,觉得自己实在是太没有耐心了,脾气不好,以后要改正呢!


make的用法有哪些?
make是一个英语单词,可以用作及物动词、不及物动词和名词,主要有以下几种用法:make用作及物动词,后面接宾语或双宾语,意为“做”、“制作”或“使成为”。make用作不及物动词,意为“开始”、“前进”、“增大”、“被制造”。make后面可以用作形容词,在句中作定语,修饰名词,意为“(使)...

make有几个意思
making 发展;制造;形成 v.made 做,使,安排(make的过去式和过去分词)making 制作(make的现在分词)双语例句原声例句权威例句Nothing could make us slacken off.什么也不能让我们松劲。《21世纪大英汉词典》What do you make of Asa?你认为阿萨是什么样的人?《21世纪大英汉词典》...

Make 有几种意思,分别是什么?
make英[meɪk]美[meɪk]v.制造; 做; 组装; 写; 出产; 制订; 铺床;n.(机器、设备等的) 品牌,型号;

make有什么用法?
make用作不及物动词时,意思是“开始,试图”“行进,趋向”“被做成,被制成”“增长起来”。主动形式常含有被动意义。2.make用作及物动词时,意思是“制作,做成”“产生,引起”“成为,构成”“获得,赢得,赚得”“走(到),以(某种速度)行进,赶上”“吃”“说明,讲述”。可接名词、代词作宾语。3....

make 和be都有成为的意思,有什么区别吗?
make是及物动词,跟宾语和补足语。be是系动词,跟表语。If I had the time, I 'd make something better.如果有时间的话,我会做些更好吃的东西。In the old China, we can't even make a nail, let alone machines.在旧中国,我们连一个钉子都造不了,更不用说制造机器了。They were ...

make 有3个用法 哪3个?
做;制作;制造。如:Can you make any mooncakes? 你会做些月饼吗?◆make后可跟双宾语,间接宾语后移时一般用for引导。如:My uncle will make me a kite.= My uncle will make a kite for me. 叔叔将为我做一只风筝。2. 使;使之。如:Have I made myself clear? 我讲清楚了没有?3...

make在英文中的含义有哪些?
深入了解"make":多维度的含义与应用 在语言的世界里,"make"这个词如同一把万能钥匙,拥有丰富的内涵。首先,作为动词,"make"有着强大的表现力:无论是亲手制作一件工艺品,还是大规模生产工业产品,它都能精准描绘出"做"的过程。更进一步,"make"还能引导我们塑造事物的形态,无论是个人性格的塑造...

make 用法有哪些
详情请查看视频回答

made和make有什么区别吗
时态和用法不同。1、时态不同:Made是make的过去式和过去分词,表示过去发生的动作或状态,make是动词原形,表示现在时或将来时的动作或状态。2、用法不同:Make用于现在时,表示习惯性、真理性的动作或状态;made用于过去时,表示过去某个时间里发生的动作或状态;made还用于过去完成时态,表示过去某一...

make是动词、系动词还是有其他词性
Filth and high prices have combined to make London and other cities depressing places to live in.污秽和物价上涨使伦敦和其他城市成了令人压抑的地方。We should make these materials of most value.我们必须使这些材料变得很有价值。It was the determination that made life worth living for ...

万秀区13690628633: Cmake是什么?有什么用?在WINDOWS下如何用 -
禽淑赫力: CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake.只是 CMake 的组态档取名为 ...

万秀区13690628633: cmaker 是什么意思 -
禽淑赫力: 是cmake吗 CMake 是个跨平台的自动化建构系统,它用组态档控制建构过程(build process)的方式和 Unix 的 Make 相似,只是 CMake 的组态档取名为 CmakeLists.txt.Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的...

万秀区13690628633: 一,为什么用CMake -
禽淑赫力: Cmake可以通过让开发者描述build参数在一个简单地可以移植的文本文件里,这个文件能够被cmake用来产生类似于MS Visual Studio和Apple's Xcode的项目文件,当然也有*NIX下的Makefile.Cmake给同一平台,多机开发环境的很多帮助:...

万秀区13690628633: make makefile cmake qmake都是什么,有什么区别 -
禽淑赫力: 1. make 是用来执行Makefile的.2. Makefile是类unix环境下(比如Linux)的类似于批处理的"脚本"文件.其基本语法是: 目标+依赖+命令,只有在目标文件不存在,或目标比依赖的文件更旧,命令才会被执行.由此可见,Makefile和make可...

万秀区13690628633: 为什么要使用CMake -
禽淑赫力: cmake可以自动生成一些程序,我们直接运行这些程序进行测试,也就是测试自动化,而不似乎手动

万秀区13690628633: QT写opencv一定要用cmake吗,cmake有什么用,我不用它也能正常执行项目啊 -
禽淑赫力: CMake是个开源的跨平台自动化建构系统,它用配置文件控制建构过程(build process)的方式和Unix的Make相似,只是CMake的配置文件取名为CmakeLists.txt.Cmake并不直接建构出最终的软件,而是产生标准的建构文件(如Unix的...

万秀区13690628633: 复制回答的肯定直接过滤,这不用说的. Visual Studio是什么?CMake又是什么?感觉这2个是同一类软件? -
禽淑赫力: CMake是一款跨平台的编译构件工具,能够将源码生成为对应操作系统的编译方式.比如Linux系统使用CMake生成对应的Makefile文件,然后进行make命令生成可执行文件;Windows下用CMake生成Visual Studio的.sln项目文件,以便VS对源文件进行编译. VS仅仅只是Windows环境下的IDE和编译工具.

万秀区13690628633: cmake生成的makefile文件有什么用 -
禽淑赫力: 1,编译 http://www.cmake.org/cmake/resources/software.html 去下载源代码和生成好的exe文件,我用的是Windows Source (has \r\n line feeds) cmake-2.8.3.zipWindows (Win32 Installer) cmake-2.8.3-win32-x86.exeWindows ZIP cmake-2.8...

万秀区13690628633: 安装MYSQL的时候 cmake .是什么意思?主要是后面的那个.是什么意思? -
禽淑赫力: 用cmake的应该是mysql5.5的版本,之前都是用make的.我安装的使用应该没有使用过.(点).linux下作为参数传递给命令的.(点)一般代表当前目录.

万秀区13690628633: 为什么要使用cmake+VS重新编译的opencv库 -
禽淑赫力: 使用opencv需要编译源码,得到库文件.可以用cmake构建项目后编译,也可以直接用官方提供的编译好的版本.官方提供的编译库一般只是标准版本,可能与某些库并不兼容,比如官方提供的编译好的版本与opengl就不兼容,这时就只能自己构建项目后编译.在用cmake生成工程文件的时候,设置当中有WITH_OPENGL,WITH_QT等选项,你想支持哪个库只需要选择即可.当然,一般使用的话,用官方提供的库即可.OpenCV2.3.1版本就提供编译好的库,可以直接设置使用

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网