CMake教程1:CMake是什么?

简介: CMake教程1:CMake是什么?

认识CMake

在介绍CMake之前,需要介绍一些计算机基础,这样能更好的理解CMake到底是什么。

如何编译程序

计算机语言只是一个标准规范,只定义了语法,而编译器的工作就是将源代码转换为机器语言。

不同的操作系统、不同的IDE可以自由选择使用的编译器,常见的C++编译器有:GCC(GNU Compiler Collection)、MSVC系列、 llvm+Clang、 TCC(Tiny C Compiler)、 Borland C++等等

假如使用GCC编译器进行程序开发,我们需要手动在命令行里面进行手动编译项目,大致过程是这样子:

# 手动编译源文件
$ gcc -Wall -g -o hello hello.c 
$ ./hello 
# 执行 
Hello world!
复制代码

如何自动化构建程序

如果项目源文件非常多,每次都需要在命令行手动编译非常麻烦,于是就诞生了make工具Makefile文件,注意两者是配套的。

可以理解为make工具是一个批处理应用程序,Makefile文件指定了程序如何进行编译和链接(其实就是配置文件),两者配合使用就能实现半自动化构建程序。

常见的make工具有有:GNU的gmake、MicroSoft的nmake等

如何跨平台开发程序

每个的make工具配套的Makefile文件编写规则都不兼容,在开发跨平台程序的时候,不可能每个平台的Makefile都写一遍,所以就诞生了跨平台的make工具,比如Qt的qmakekitware的cmake等等。

CMake可以输出各种Makefile(namke、gmake)和Project工程(visual studio、xcode),所以现在的跨平台游戏引擎大部分都选择了CMake

总结

CMake可以理解为使用平台无关的配置文件,自动编译链接程序的一个工具集,最大的优势就是跨平台。



目录
相关文章
|
CDN
静态资源库CDN服务
使用静态资源库可以访问线上资源文件,比如jquery库、bootstrap库。使用百度静态资源库的居多,但是发现百度暂时不支持https协议,bootcdn是一个不错的选择。
3667 0
|
存储 JSON 小程序
【小程序云开发】不用后端也能构建完整的微信小程序
本文介绍了如何从零开始学习和掌握微信小程序云开发,包括云函数、云数据库和HTTP触发等重要概念。通过详细的步骤和示例,读者将学会如何创建和部署云函数,以及如何使用云数据库来存储和管理小程序的数据。同时,本文还介绍了如何通过HTTP触发器实现小程序与外部API的数据交互,从而为小程序开发提供更灵活、高效的后端解决方案。无论您是初学者还是有一定经验的开发者,本文都将帮助您轻松掌握微信小程序云开发,并为您的小程序开发项目提供更多可能性。
2758 0
|
前端开发 JavaScript Java
Spring Boot中使用拦截器
本节主要介绍了 Spring Boot 中拦截器的使用,从拦截器的创建、配置,到拦截器对静态资源的影响,都做了详细的分析。Spring Boot 2.0 之后拦截器的配置支持两种方式,可以根据实际情况选择不同的配置方式。最后结合实际中的使用,举了两个常用的场景,希望读者能够认真消化,掌握拦截器的使用。
|
Ubuntu 安全 网络协议
|
JSON 程序员 数据格式
程序员必知:同步接口和异步接口
程序员必知:同步接口和异步接口
1499 0
|
消息中间件 弹性计算 Cloud Native
估值百亿独角兽爱学习教育集团:通过云原生实践与时间赛跑
iiMedia Research(艾媒咨询)数据显示,在线教育市场规模保持逐年增长的态势,2019年在线教育市场规模已突破4000亿元。在疫情的助推下,在线教育加速渗透,市场空间有望进一步打开,预计2020年中国在线教育市场规模将达到4538亿元。
3708 84
估值百亿独角兽爱学习教育集团:通过云原生实践与时间赛跑
|
Oracle 关系型数据库 数据库
docker下安装oracle11g(一次安装成功)
docker下安装oracle11g(一次安装成功)
3591 1
|
SQL 前端开发 JavaScript
18款Visual Studio实用插件
18款Visual Studio实用插件
1303 0
|
机器学习/深度学习 人工智能 自然语言处理
《AI在文学创作中的应用》
《AI在文学创作中的应用》
1406 0
|
开发工具 git Windows
解决Tortoise git没有红色、绿色勾勾的问题
网上搜了好多,感觉这个挺好用的(亲测有效)
3615 0
解决Tortoise git没有红色、绿色勾勾的问题