编译与链接、库、make

0.人写的程序变为二进制程序的过程:

①源程序.cpp→(编译compile,配置include)→②目标文件.obj/.o→(链接link,拼接起来所有零散的文件)→③可执行二进制文件.exe / a.out


1.编译与链接

编译:自定义头文件的搜索路径
链接:设库的搜索路径


2.动态库与静态库

1.静态库
.a (Linux,archive)
.lib (Windows)

2.动态库
.so(Linux,shared object)
.dll(Windows,Dynamic linked library)

3.区别
主要在于代码被载入的时刻不同:
静态库是在编译链接期被链接到可执行文件中,运行时不在需要该静态库,因此体积比较大。
动态库是在程序运行时才被载入,因此程序运行时候依赖动态库,体积比较小。
/动态库是为了解决静态库的缺点而产生的。

好文:https://blog.csdn.net/weixin_41754258/article/details/124186826


3.Makefile、make、cmake、qmake

从事于linux下的C++开发的人员都知道,在C++下编写程序是没有类似windows下编译器的一键编译和运行的按钮,只能由我们开发人员进行手动编译、运行;为了减免这种繁琐而且复杂的劳动力,出现了makefile文件,makefile文件可以帮助我们很快的编译大量文件,最终形成可执行文件;其实编写makefile文件并不是很复杂,但是后面出现了cmake,这个可以直接帮我们写makefile文件,我们只需要编写cmake文件即可;

①刚开始:在linux环境下,对于预处理、编译、汇编、链接这4步,每一步都需要输入gcc -参数
命令来执行。如果文件很多就要都输上。非常麻烦。
②为了解决这个麻烦,出现了Makefile文件。Makefile文件就是,把上述4步的命令都写进去,在外面只需要执行一步make命令就行了。
③但是后面为了更偷懒,连Makefile文件里的4步命令行都不想写了。又发明出了cmake命令,可以帮程序员自动生成Makefile文件,在外面需要执行一步cmake命令就行了。
④cmake在Qt中的变种为qmake

Makefile:用来一下子执行完 预处理、编译、汇编、链接 命令的
make:是来执行Makefile文件的
cmake:用于生成Makefile文件。比qmake更复杂而多功能
qmake:cmake在Qt下的变种,是Qt的自动生成Makefile的


3.1qmake
根据实际环境创建项目文件.pro 并且运行qmake生成适当的Makefile

构建
构建是增量编译,只编译有变化部分

构建该文件crtl+alt +B

重新构建
是把所有部分都重新编译

运行
有改动则根据已有的Makefile进行编译,执行构建和重新构建时如果没有Makefile,会根据.pro文件等生成Makefile后再编译

所以运行顺序应该是:qmake-构建-运行


C语言程序开发流程如下:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员爱德华

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

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

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

打赏作者

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

抵扣说明:

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

余额充值