cmake时发生了什么

一、简介    

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

二、解释部分词语

1.组态档:

       组态档是用一种建构软件专用的特殊编程语言写的CMake脚本。使用组态档能改变程序的设置,而不用重新编译程序

2.SCons

        SCons是一个Python写的自动化构建工具,从构建这个角度说,它跟GNU make是同一类的工具,是一种改进,并跨平台的gnu make替代工具,其集成功能类似于autoconf/automake 。scons是一个更简便,更可靠,更高效的编译软件。

三、核心功能

编译源代码、制作程式库

四、为什么要使用cmake/autotools之类的项目构建工具?

        能够更加有效的组织和管理代码及其编译过程,我们不可能将一个软件工程项目只写在一个main.cpp中,决定代码的组织方式和编译方式也是程序设计的一部分。因此,我们需要这类软件帮助我们更好的管理维护代码。

        CMake/autotools等工具底层都是makefile,为的是产生可移植的makefile,makefile一般依赖于当前平台,手写的makefile工作量较大且依赖容易出错。因此,正常使用软件来自动生成他们。

/*******************************************************************举例**********************************************************************/

编写一个程序,例如helloworld.cpp(main.cpp)


1 /*main.cpp*/
2 #include<iostream>
3 int main()
4 {
5 std::cout<<"Hello word!"<<std::endl;
6 return 0;
7 }

在文件下再建立一个文件--CMakefile.txt

如图:

文件中配置如下:

PROJECT(main)
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
AUX_SOURCE_DIRECTORY(. DIR_SRCS)
ADD_EXECUTABLE(main ${DIR_SRCS})

#project名需要一致

这里再windows上使用cmake-gui配置生成可执行文件:

配置

生成

此时可以看到build文件夹下出现工程的全部文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值