当前位置: 首页 > news >正文

Linux makefile

Linux makefile

  • 用makefile去自动编译和删除静态库和动态库

在实际开发中,项目的源代码文件比较多,按类型、功能、模块分别存放在不同的目录和文件中,哪些文件需要先编译,那些文件后编译,那些文件需要重新编译,还有更多更复杂的操作。

make是一个强大的实用工具,用于管理项目的编译和链接。

make需要一个编译规则文件makefile,可实现自动化编译。

用makefile去自动编译和删除静态库和动态库

Linux 静态库和动态库在这篇博客中介绍了怎么去制作静态库和动态库,在这个基础上我们使用makefile实现自动编译和删除的功能

  • 第一步:去创建makefile文件,因为make命令需要一个编译规则文件makefile
vi makefile

makefile文件内容如下:

# 指定编译的目标文件是libpublic.a和libpublic.so
all:libpublic.a \libpublic.so# 编译libpublic.a需要依赖public.h和public.cpp
# 如果被依赖文件内容发生了变化,将重新编译libpublic.a
libpublic.a:public.h public.cppg++ -c -o libpublic.a public.cpplibpublic.so:public.h public.cppg++ -fPIC -shared -o libpublic.so public.cpp# clean用于清理编译目标文件,仅在make clean才会执行。
clean:rm -f libpublic.a libpublic.so

注意:g++ -c -o libpublic.a public.cpp 和 g++ -fPIC -shared -o libpublic.so public.cpp 以及rm -f libpublic.a libpublic.so 前面一定要用 TAB 键,而不能用八个空格来代替,不然会产生如下提示:
在这里插入图片描述

  • 第二步:此时tools文件中已经存在了 静态库文件(.a) 和 动态库文件(.so),现在我们执行 make clean命令清理编译的目标文件
    在这里插入图片描述
    可以发现被清理掉了

  • 第三步,执行make命令
    在这里插入图片描述
    重新编译生成了动态库和静态库

注意:相关的文件只要被改变,make命令就可以重新执行生成新的文件,并且是改变哪个文件就只重新编译改动文件,而不是全部都重新编译,否则(未进行任何改动)会如下提示:
在这里插入图片描述

http://www.lryc.cn/news/354833.html

相关文章:

  • 信息安全基础知识
  • 【数据结构】链式二叉树(超详细)
  • 排序题目:最小绝对差
  • 沃飞携AE200真机亮相澳门,全方位赋能城市低空出行
  • 判断当前系统是linux、windows还是MacOS (python)
  • Minikube部署单节点Kubernetes
  • leetcode-顺时针旋转矩阵-111
  • 解决GoLand无法Debug
  • 云原生周刊:K8s 上的 gRPC 名称解析和负载平衡
  • 从0开始回顾ElasticSearch
  • 小阿轩yx-Shell编程之条件语句
  • MyBatis-Plus 从入门到精通
  • 爬虫利器Frida RPC入门——夜神模拟器环境篇
  • 猫狗分类识别模型建立①数据标记
  • FME学习之旅---day28
  • vue3项目中字典和全局方法的创建与使用
  • 51-54 Sora能制作动作大片还需要一段时间 | DrivingGaussian:周围动态自动驾驶场景的复合高斯飞溅
  • 数据挖掘实战-基于余弦相似度的印度美食推荐系统
  • 深入探索DreamFusion:文本到3D生成的革命性技术
  • JSP期末要点复习
  • AJAX(JavaScript版本)
  • 框架学习之SpringMVC学习笔记(一)
  • 数据集005:螺丝螺母目标检测数据集(含数据集下载链接)
  • Swift 类和结构体
  • 网络安全相关面试题(hw)
  • 前端开发攻略---三种方法解决Vue3图片动态引入问题
  • 零售EDI:Target DVS EDI项目案例
  • AWS安全性身份和合规性之AWS Firewall Manager
  • R实验 随机变量及其分布
  • rapidssl泛域名https600元一年