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

门户网站建设与推广方案外包加工网app

门户网站建设与推广方案,外包加工网app,龙岗南联网站建设,前端学习手机网站开发吗五、Linux项目自动化构建工具-make/Makefile make:是一条指令。 makefile:是一个当前目录下的文件。 第一行:依赖关系。 第二行:依赖方法。 clean是空依赖关系。 编译文件清理 背景 会不会写makefile,从一个侧面说…

五、Linux项目自动化构建工具-make/Makefile

make:是一条指令。

makefile:是一个当前目录下的文件。

image-20241216211116849

第一行:依赖关系。

第二行:依赖方法。

clean是空依赖关系。

image-20241216211022986

编译文件清理

image-20241216211216667

背景

会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。

一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,

makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,

甚至于进行更复杂的功能操作。

makefile带来的好处就是——“自动化编译”,一旦写好,

只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

make是一个命令工具,是一个解释makefile中指令的命令工具,

一般来说,大多数的IDE都有这个命令,

比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。

可见,makefile都成为了一种在工程方面的编译方法。

make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

理解

依赖关系、依赖方法

先找makefile文件,在makefile文件种找依赖关系和依赖方法,根据源文件帮我们形成对应的目标文件。

image-20250129203257669

mycode是依赖关系的目标文件

mycode依赖mycode.c这个源文件

gcc -o mycode mycode.c这个叫做依赖方法


image-20250129204801132

image-20250129205028949

makefile的自动化推导(栈式结构)

形成mycode就要先形成mycode.o

形成mycode.o就要先形成mycode.s

形成mycode.s就要先形成mycode.i

形成mycode.i就要先找到mycode.c

这个顺序与输入顺序无关。


是否能重新make

(在不修改源代码的基础上)为什么只能make一次

因为源文件没修改,形成的目标文件内容不需要(没有必要)再更新。提高编译效率。

image-20250129212957604

image-20250129212516341


修改源代码可以重新make

image-20250129213357580

修改前:

image-20250129213251255

修改后:

image-20250129213316943


怎么做到的?(怎么知道我当前的文件要不要被编译)

一定是源文件形成可执行文件的,先有源文件,再有可执行文件。

一般而言,源文件的修改时间 比 形成可执行文件的时间要 老。

如果我们修改了源文件,历史上还有可执行文件,那么源文件最近修改时间 比 可执行文件形成时间要 新。

how:

只需要比较可执行程序的最近修改时间 和 源文件的最近修改时间

.exe 新于 .c 源文件是老的,不需要重新编译。

image-20250129222056917

.exe 老于 .c 源文件是新的,需要重新编译。

image-20250129222123502

一般而言:.exe 形成时间 与 .c 最近修改时间 一般不会一样。

一般比较modify时间即可(对modify时间有疑问的同学,移步至“补充stat”)

结论:make会根据源文件和目标文件的新旧,判定是否需要重新执行依赖关系进行编译!(不一定总是执行)


如果想让对应的依赖关系总是执行呢?

.PHINY:伪目标 -> 总是被执行

image-20250129222640803

image-20250129222709349


如何清理

clean是空依赖关系

image-20250129211143941

image-20250129211239134


一般是让clean作为伪目标,总是被执行。

image-20250129222940087

image-20250129223040796


如果把clean放在最前面,则使用make命令默认执行第一行

image-20250129211623869

image-20250129211656511

所以不建议把清理放在最前面

make后面直接跟目标文件:指定名称 执行该目标文件的依赖关系与依赖方法

特殊符号

$@是目标文件 也就是冒号左边的

$^是源文件 也就是冒号右边的

image-20250203133315879

在编译的时候,$@、$^会回现出来

image-20250203133527037

如果不想让它回现出来,就在前面加上@

image-20250203134248743

image-20250203134335959


补充

stat

显示时间

文件=文件内容+文件属性

修改文件内容:

image-20250129213316943

image-20250129220408712

image-20250129220319540

修改文件属性:

image-20250129220704457

要把时间都修改成最近的时间

image-20250129221309088

修改access时间为最近时间

image-20250129221408404


六、使用git 命令行

git具有网络功能的版本控制器,是开源的,客户端和服务端是一体的。

安装 git
yum install git

已经下载好了是这样的

image-20250219212014695

git版本

image-20250219212116979

Github 创建项目

使用 Github 创建项目

注册账号

这个比较简单, 参考着官网提示即可. 需要进行邮箱校验.

创建项目

  1. 登陆成功后, 进入个人主页, 点击左下方的 New repository 按钮新建项目

  2. 然后跳转到的新页面中输入项目名称(注意, 名称不能重复, 系统会自动校验. 校验过程可能会花费几秒钟). 校验

完毕后, 点击下方的 Create repository 按钮确认创建.

  1. 在创建好的项目页面中复制项目的链接, 以备接下来进行下载.

下载项目到本地

创建好一个放置代码的目录.

这里的 url 就是刚刚建立好的 项目 的链接.

image-20250219212833532

image-20250219213201845

这个.git就是本地仓库

image-20250219213304786

git中的隐藏目录

image-20250219213446334

将代码克隆到了本地中,但是没有被仓库管理起来

image-20250219214049958

三板斧第一招: git add

将代码放到刚才下载好的目录中

git clone [url]

将需要用 git 管理的文件告知 git

三板斧第二招: git commit

提交改动到本地

最后的 "." 表示当前目录

提交的时候应该注明提交日志, 描述改动的详细内容.

三板斧第三招: git push

同步到远端服务器上

需要填入用户名密码. 同步成功后, 刷新 Github 页面就能看到代码改动了.

image-20250219222237377

image-20250219222256729

配置免密码提交

git本地免密码和账号pull、push_没有git账号怎么拉代码-CSDN博客

git add [文件名]

git commit .

git push

其他问题

git首次使用需要配置邮箱和用户名

image-20250219220601327

image-20250219220845054

why?

对代码进行溯源


要开源或者删除仓库 该怎么办?

image-20250219221413309

image-20250219221426078


.gitignore问题

在这里的后缀将不会上传至远端

image-20250219223854698

image-20250219224132342

image-20250219224950887

image-20250219225054080

最终只有.ppp的成功上传,同时,.gitignore也改变了

image-20250219225158413

查看提交记录


文章转载自:

http://9YuKuUFA.mbqyL.cn
http://iAHV7Hml.mbqyL.cn
http://pcOHp1lZ.mbqyL.cn
http://621pouPY.mbqyL.cn
http://5tzqgMwN.mbqyL.cn
http://N81mtzN1.mbqyL.cn
http://JmiX4TBZ.mbqyL.cn
http://qKUucdT3.mbqyL.cn
http://yG3w8GNL.mbqyL.cn
http://xUO0tHKT.mbqyL.cn
http://ZrWktAf4.mbqyL.cn
http://Hsharceb.mbqyL.cn
http://W5qTP5nK.mbqyL.cn
http://uW0YCi56.mbqyL.cn
http://VvrX1L9l.mbqyL.cn
http://nrIkRfDL.mbqyL.cn
http://nrfz6wCf.mbqyL.cn
http://gVgu3tUx.mbqyL.cn
http://JXzI8Wdb.mbqyL.cn
http://hUDZs01d.mbqyL.cn
http://lmOKKGFX.mbqyL.cn
http://Xu3KdwCE.mbqyL.cn
http://607NNpiu.mbqyL.cn
http://VlfosL6B.mbqyL.cn
http://bJAs3N7I.mbqyL.cn
http://bSTvVTev.mbqyL.cn
http://sCqAfPSM.mbqyL.cn
http://1QODK78u.mbqyL.cn
http://mUY8iqkQ.mbqyL.cn
http://5pjxtjlT.mbqyL.cn
http://www.dtcms.com/wzjs/681771.html

相关文章:

  • 政务网站群建设常州网站建设教程
  • 建筑考试网官网爱站网站seo查询工具
  • 福州营销网站建设老品牌新手怎样做网站
  • 十大免费行情软件下载网站烟台网络公司有哪些
  • 撰写网站建设技术解决方案网站后台密码存在哪
  • 微网站后台wordpress 个人主题
  • 做网站公司信科建站免费ui设计 接单网站
  • 温州市网站建设公司百度关键词搜索
  • 济南黄河路桥建设集团官方网站湖南响应式网站推荐
  • 深圳做微信商城网站建设湘潭市 网站建设
  • 网站建设使用的工具河南炒股配资网站开发
  • 怎么让网站被搜索到娄底建网站
  • 正规的装饰行业网站建设公司939网站建设
  • 我想做京东网站淘宝怎么做的韩国seocaso
  • 记事本代码做网站网站建设的规模设想
  • 财经网站建设郑州网站推广地址
  • 鄂州市住房和城乡建设部网站昆明网站建设赵
  • 锦州市网站建设深圳 网站建设
  • 无锡网站建设价格最优成都有哪些好玩的地方和景点
  • 福州免费网站建站模板成都哪家网站建设做得好
  • 做外贸的都有哪些网站上海广告公司招聘信息
  • 功能型网站建设企业培训的目的和意义
  • 资讯网站 整体uiwordpress必备工具
  • 沧州网站建设费用个人网站毕业设计作品
  • 无锡市建设培训中心网站苏州市建设局网站
  • wordpress 网站打不开2345推广联盟
  • 公司后台的网站代理维护更新注册安全工程师准考证打印入口
  • 高品质网站建设软件应用商店下载安装
  • 设计出色的网站公司注册地址必须是商业用房吗
  • 个人网站可以做健康付费知识小程序怎么开发自己的小程序代码