×

cmake

CMake和Make之间的区别?Cmake是什么有什么作用为什么要使用Cmake

admin admin 发表于2022-05-06 13:54:31 浏览115 评论0

抢沙发发表评论

CMake和Make之间的区别

gcc是C语言编译器,而g++则是C++语言编译器,虽然gcc命令也可以用来编译C++语言的源码,但是它最终是要调用g++的。make工具通过你提供的一个名为Makefile的文件,根据Makefile的内容来决定如何编译源文件。而关于make和cmake的区别,你可以理解为make需要使用Makefile,而cmake是产生Makefile的工具。

Cmake是什么有什么作用为什么要使用Cmake

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。作用是他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。

这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

CMake是为了解决美国国家医学图书馆出资的Visible Human Project专案下的Insight Segmentation and Registration Toolkit (ITK) 软件的跨平台建构的需求而创造出来的,其设计受到了Ken Martin开发的pcmaker所影响。pcmaker当初则是为了支持Visualization Toolkit这个开放源代码的三维图形和视觉系统才出现的,VTK也采用了CMake。-cmake

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。下载地址:根据自己的需要下载相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。Windows下CMake的使用(2)运行cmake的方法。(GUI、命令行)CMake使用步骤:运行GUI的cmake界面:cmake-2.8.1-win32-x86\bin\cmake-gui.exeWindows下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配置方法可以在源代码的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》makeLinking CXX executable Tutorial.exe[100%] Built target Tutorial可以运行一下Turorial.exe:D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3》Tutorial.exeTutorial.exe Version 1.0Usage: Tutorial.exe numberD:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3》Tutorial.exe 4The square root of 4 is 22、Step2把子目录编译为库,并且链接到最终的可执行文件。include_directories (“${PROJECT_SOURCE_DIR}/MathFunctions“) add_subdirectory (MathFunctions) # 使得子目录MathFunctions也能被编译 # add the executableadd_executable (Tutorial tutorial.cxx)target_link_libraries (Tutorial MathFunctions)产生makefile:在GUI上点击Configure,之后Generate还是灰色,再次点击Configure,Generate就可以点击了。编译: