首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Linux探秘坊-------3.开发工具详解(2)

Linux探秘坊-------3.开发工具详解(2)

作者头像
hope kc
发布2025-01-21 12:51:31
发布2025-01-21 12:51:31
1810
举报
文章被收录于专栏:学习学习

1.动静态库和动静态链接(操作)

  • 静态库是指编译链接时,把库⽂件的代码全部加⼊到可执⾏⽂件中,因此⽣成的⽂件 ⽐较⼤,但在运⾏时也就不再需要库⽂件了。其后缀名⼀般为“.a”
  • 动态库与之相反,在编译链接时并 没有把库⽂件的代码加⼊到可执⾏⽂件中 ,⽽是在程序执⾏时由运⾏时链接⽂件加载库,这样可以节省系统的开销。动态库⼀般后缀名为“.so”

静态链接操作:gcc code.o -o mycode -static

动态链接操作:gcc code.o -o mycode

2.自动化构建make/makefile

1.初识makefile
  • makefile带来的好处就是⸺⸺“⾃动化编译”,⼀旦写好,只需要⼀个make命令,整个⼯程完全 ⾃动编译,极⼤的提⾼了软件开发的效率。
  • make是⼀个命令⼯具,是⼀个解释makefile中指令的命令⼯具,⼀般来说,⼤多数的IDE都有这 个命令,⽐如:Delphi的make,VisualC++的nmake,Linux下GNU的make。可⻅,makefile 都成为了⼀种在⼯程⽅⾯的编译⽅法。
  • make是⼀条命令makefile是⼀个⽂件,两个搭配使⽤,完成项⽬⾃动化构建。

浅浅尝试一下:

先创建一个code.c并用vim进行编写,再新建一个makefile

用vim打开makefile,并写入以上内容,

  • 前为要生成的可执行程序的名字,后为源文件(第一行为 依赖关系
  • gcc code.c -o code (第二行为 依赖方式

make指令完成编译

运行也成功

2.具体语法
1.清理代码文件

如果代码文件我不想要了,那怎么清理呢?

先vim打开makefile,写入红框的内容

  • 第一行表示 clean不依赖于任何文件
  • 第二行为依赖方式

执行make clean,发现code(可执行文件)已经被删除

2.依赖关系的推导

test.c存在,推导结束

3.完整的makefile语法
1.类似宏替换的操作

之前我们在makefile里都是直接写文件名的,这里使用 类似宏替换 的方式替换命令和文件,记住,在使用替换时要加上$()

2.多文件统一编译为可执行文件

假如我们的文件非常多,那么上述类似宏替换的方法就不行了,举例:

模拟100个文件的情况

我们来依次解释:

这句话表示,SRC拿到了当前目录里 所有以.c结尾的文件

这行表示OBJ是由SRC中 所有.c变为.o得来的

这里的^是指依赖关系中:后的内容@是指:前的内容

这里%是通配符,:左边匹配所有.c结尾的文件,<表示将展开的所有.c文件,一个接一个地匹配命令,形成.o文件

每一行最前面的@是指在外面使用make指令时 不显示过程,直接给出结果(可不加)

我们也可以 自我定制执行某一步骤后,想要输出的提示内容

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.动静态库和动静态链接(操作)
  • 2.自动化构建make/makefile
    • 1.初识makefile
    • 2.具体语法
      • 1.清理代码文件
      • 2.依赖关系的推导
      • 3.完整的makefile语法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档