0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux中CMake的使用1-单个源文件

码农爱学习 来源:码农爱学习 作者:码农爱学习 2022-09-18 17:56 次阅读

1 引言

linux中进行C/C++开发,一般都是先用编辑器写好代码,然后使用gcc工具来编译程序。

文件数量不多的工程,可以直接敲gcc命令进行编译。对于文件较多的工程,就要使用Makefile来管理代码的编译了。

而手动编写Makefile其实也是具有一定的难度的,更方便的方式是使用更易编写CMake来自动生成Makefile。

2 Linux中安装CMake

这里插一句,在Window系统中,许多人也用过CMake,它可以配合集成开发环境如Visual Studio,通过图形化的操作界面,操作CMake图形界面进行代码的编译。

本篇介绍的,在Linux中使用CMake,还用不到图形界面,仍然是文本编辑的方式使用CMake。

CMake在Linux的安装,直接使用命令安装即可:

sudo apt install cmake

安装完成之后可以查看cmake的版本,我用的是3.10.2

poYBAGMm6bqADuutAABQhSE5U8o325.png

3 编译单个文件的CMake基础示例

3.1 编写C源文件

首先写一个最简单的hello word程序,hello.c:

#include 

int main(void)
{
	printf("Hello World\n");
	return 0;
}

3.2 编写CMakeLists.txt

然后在相同目录下编写CMakeLists.txt:

cmake_minimum_required (VERSION 2.8)

project (hello)

add_executable(hello hello.c)

这是一个最基础的CMake使用模板,这3行的含义如下:

第一行:要求cmake的最低版本为2.8

第二行:工程名

第三行:生成的可执行文件名为hello,使用的源文件为hello.c

注:以上3条,add_executable起主要作用,前两条去掉也可以运行

3.3 执行cmake指令生成Makefile

然后输入以下命令运行cmake,从而帮我们自动生成makefile文件:

cmake .

这个“点”表示是当前目录搜索源文件。

cmake指令的执行结果如下:

pYYBAGMm6dCASh17AAHJTPu5pv4743.png

可以看下CMake生成的makefile文件,相比较自己手写的makefile,这个自动生成的makefile,内容很多:

poYBAGMm6deAUviJAAFHqpXaAPg931.png

3.4 执行make指令编译代码

makefile文件产生之后,就可以使用make指令来编译源代码了:

make

执行make指令之后,可以看到生成了可执行文件hello,运行这个hello文件,就可以看到程序的输出了:

pYYBAGMm6d6AEe4tAAFv5vfyFgU223.png

4 总结

本篇介绍了Liunx中如何使用CMake来生成makefile,进行进行源程序的编译。

将上述的CMake编译单个源文件的使用操作总结为一张图:

pYYBAGMm6eSAc8vCAAC7UozHIZM464.png

编写CMake主要就是编写CMakeLists.txt,基础模板为:

cmake_minimum_required (VERSION 2.8)

project (hello)

add_executable(hello hello.c)

其中最主要的一句就是:

add_executable(hello hello.c)




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10988

    浏览量

    206725
  • gcc编译器
    +关注

    关注

    0

    文章

    77

    浏览量

    3233
收藏 人收藏

    评论

    相关推荐

    Linux下如何使用CMake编译程序

    今天分享一篇关于 cmake 的相关文章,通过这个工具可以生成本地的Makefile。让我们不用去编写复杂的Makefile。
    的头像 发表于 11-21 09:28 387次阅读
    <b class='flag-5'>Linux</b>下如何使用<b class='flag-5'>CMake</b>编译程序

    Windows下编译工具CMake的安装和最简使用

    MCU的开发环境一般在Windows操作系统上,简单的工程一般直接编写Makefile文件后使用make工具构建程序,复杂的工程一般借助CMake来生成Makefile文件后使用make工程构建程序
    的头像 发表于 11-14 10:18 1559次阅读
    Windows下编译工具<b class='flag-5'>CMake</b>的安装和最简使用

    CMake构建后的项目结构解析

    Structure After CMake Build) CMake构建完成后,会在项目的根目录下生成一个名为build的目录。这个目录是CMake构建过程中所有中间文件和最终生成的
    的头像 发表于 11-10 10:27 401次阅读
    <b class='flag-5'>CMake</b>构建后的项目结构解析

    Linux下如何使用CMake编译程序

    CMake是开源、跨平台的构建工具,可以让我们通过编写简单的配置文件去生成本地的Makefile,这个配置文件是独立于运行平台和编译器的,这样就不用亲自去编写Makefile了,而且配置文件
    的头像 发表于 11-08 16:15 1630次阅读
    在<b class='flag-5'>Linux</b>下如何使用<b class='flag-5'>CMake</b>编译程序

    Emulex HBA OpenJDK VMware ESXi源文件

    电子发烧友网站提供《Emulex HBA OpenJDK VMware ESXi源文件.zip》资料免费下载
    发表于 08-03 10:10 0次下载
    Emulex HBA OpenJDK VMware ESXi<b class='flag-5'>源文件</b>

    Emulex HBA OpenJDK VMware ESXi的源文件

    电子发烧友网站提供《Emulex HBA OpenJDK VMware ESXi的源文件.zip》资料免费下载
    发表于 07-28 10:44 0次下载
    Emulex HBA OpenJDK VMware ESXi的<b class='flag-5'>源文件</b>

    Emulex HBA OpenJDK Windows源文件

    电子发烧友网站提供《Emulex HBA OpenJDK Windows源文件.zip》资料免费下载
    发表于 07-26 17:39 0次下载
    Emulex HBA OpenJDK Windows<b class='flag-5'>源文件</b>

    Emulex HBA OpenJDK源文件为Windows

    电子发烧友网站提供《开源硬件-Emulex HBA OpenJDK源文件为Windows.zip》资料免费下载
    发表于 07-24 15:27 0次下载
    Emulex HBA OpenJDK<b class='flag-5'>源文件</b>为Windows

    cmake是什么?cmake的特性和编译原理(cmake原理和cmake编译过程)

    CMake是一个开源、跨平台的工具系列,是用来构建、测试和打包软件。
    的头像 发表于 07-18 10:53 1852次阅读
    <b class='flag-5'>cmake</b>是什么?<b class='flag-5'>cmake</b>的特性和编译原理(<b class='flag-5'>cmake</b>原理和<b class='flag-5'>cmake</b>编译过程)

    14. 在 CMake 自定义宏___CMake 保姆级教程【C_C++】

    CMake
    jf_97106930
    发布于 :2023年05月19日 12:49:38

    7. 通过CMake 制作库文件___CMake 保姆级教程【C_C++】

    CMake
    jf_97106930
    发布于 :2023年05月19日 12:42:08

    5. 搜索文件___CMake 保姆级教程【C_C++】

    CMake
    jf_97106930
    发布于 :2023年05月19日 12:40:18

    3. CMake set 的使用 - 上___CMake 保姆级教程【C_C++】

    CMake
    jf_97106930
    发布于 :2023年05月18日 15:39:48

    CMakeLinux 6.1.1-1.0.0搜索包opencv损坏了吗?

    ] 但是这个文件不存在。 并尝试使用图像 imx-image-full 的 SDK,我收到以下错误: sysroots/armv8a-poky-linux/usr/lib/cmake/opencv4
    发表于 05-09 11:32

    交叉编译之LoongArch(Makefile,CMake,AutoTool等方式)

    CROSS_COMPILE=loongarch64-linux-gnu- 预期的构建方式是CMakeLists.txt文件在源码根目录,需要创建一个build文件夹,然后在build文件
    发表于 05-07 18:55