CMake内部构建与外部构建

CMake内部构建与外部构建

一、内部构建

首先我们使用CMake Tool为我们创建一个简单的工程,当然了,也可以自己手动创建,总的目录结构就是工程目录下一个main.cpp, 一个CMakeLists.txt

如果使用内部构建,我们就在顶层CMakeLists.txt所在的目录执行cmake,看看发生了什么。

cmake .

20221231142043

执行完后,你会发现当前工程目录中多了一对乱七八糟的文件, 如果你原本的工程中有很多源代码文件,那你现在还能找到它们吗?你能够区分哪些是有用的哪些是无用的吗?

20221231142117

内部构建就是这样,它生成了一些无法自动删除的中间文件,所以我们应当极力避免使用内部构建。

二、外部构建

  1. 首先我们把工程目录恢复原样,并在其中建立一个build子目录。当然你也可以在其他任何地方建立build目录,不一定必须在工程中。

    20221231142043

  2. 进入build目录,运行

     cmake ..
    

    注意, … 代表父目录,因为父目录存在我们需要的CMakeLists.txt, 如果你在其他地方建立了build目录,需要运行cmake <path_to_project>, 查看一下build目录,你会发现在其中生成了编译需要的MakeFile以及其他的中间文件。

    20221231143006

  3. 在build目录下运行make构建工程,就会在当前目录,也就是build中获得目标文件,文件名就是你在CMakeLists.txt中指定的工程名。
    20221231143424

上述过程就是所谓的out-of-source外部构建,一个最大的好处就是,对于原有的工程没有任何影响,所有动作全部发生在编译目录中。通过这一点,也足以说服我们全部采用外部编译的方式构建工程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smart_cat

你的鼓励将是我写作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值