CMake学习简要和C++程序编译过程

@Cmake学习简要

CMake学习简要和C++程序编译过程

最近放假在家,十分懒惰每天的生活状态基本就是工作十分钟,休息一小时,老师给的任务也因为信号处理大作业一拖再拖。终于。。。今天被狠狠嫌弃了。嗯呣,那就振作精神好好搞一搞这个框架和Raptor码吧。首先,对Cmake这个东东进行一个简要的学习。

CMake定义和功能:

定义:CMake 是一个跨平台的C++源、头文件编译工具,可以用简单的语句来描述上述文件在所有平台的编译过程。
功能:它能够输出各种各样的 Makefile 或者projects 文件,CMake 并不直接建构出最终的软件,而是产生标准的建构档(如 Makefile 或 projects)。

Makefile相关:其中,Makefile文件规定了程序应该怎样进行编译和链接,它关系到了整个工程的编译规则,并通过"make"命令工具对其中命令进行解释和执行,不同公司对"make"命令工具的实现不同,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make等。

在C++文件编译链接时,应用比较广泛的一个的工具为CMake,后面也主要针对Cmake这个工具来说。

Project 文件相关:Project文件(即Object文件)由源文件通过编译过程产生,是一种中间代码文件,其文件格式在Windows下为 .obj 文件,UNIX下是 .o 文件。大量的Object文件组合在一起(该过程称为"链接")组成了可执行文件。

源文件到可执行文件生成过程编译->链接

CMake优点:抽象,跨平台。抽象的意思是,编译软件的步骤都类似,只不过各个平台名称不一样,于是cmake抽象出相关的规则,帮你把编译逻辑映射为具体的工程。比如同一个cmake工程可在linux下生成makefile,在Windows下生成vs project。

CMake语法及应用学习过程
第一步,学会写简单的CMakeLists.txt,这个很容易找到例子,比如vtk,osg都有示例。
第二步,从使用了CMake的项目中寻找示例用法。比如require(xxx)时,cmake会执行findxxx.cmake,你看看这个脚本怎么写的。cmake也自带了不少这样的脚本。
第三步,尝试自己写一个findxxx.cmake,让自己的工程能自动找到你的库。
第四步,查看cmake文档,一个很长的网页,里面有各个命令的说明。cmake的书籍有一本:https://github.com/Akagi201/learning-cmake/blob/master/docs/mastering-cmake.pdf。 但我没看过。
(以上学习步骤来源:知乎 玟清)

如何使用Cmake将源文件生成可执行程序
1.编写CMakeLists.txt,在其中规定各个文件的编译、链接规则
2.用Cmake “cmake”(命令) CMakeLists.txt,生成makelist文件
3.“make”(指令)编译程序
4.编译成功后测试程序
5.调用链接器生成可执行程序

链接部分个人尚未搞清楚,边学边看吧,这里先甩一个指导链接上来:
https://blog.csdn.net/u013735511/article/details/82826791
参考链接
因为水平有限,参考了很多带佬的文章,这里把链接贴上来。
(1)makefile语法:
https://blog.csdn.net/haoel/article/details/2886
(2)cmake入门教程: https://blog.csdn.net/qwq1503/article/details/85866602

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值