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

塘沽做网站公司WordPress mip 评论框

塘沽做网站公司,WordPress mip 评论框,湘潭做网站问下磐石网络,京东网站建设目标是什么意思Makefile 1、Makefile简介 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂…

Makefile

1、Makefile简介

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。

make主要解决了两个问题:
(1)大量代码的关系维护
大项目中源代码多,手工维护,编译时间长而且编译命令复杂,难以记忆和维护。
把代码维护命令以及编译命令写在makefile文件中,然后再用make工具解析此文件自动执行相应命令,可实现代码的合理编译
(2)减少重复编译时间
在改动其中一个文件的时候,能判断哪些文件被修改过,可以只对该文件进行重新编译,然后重新连接所有的目标文件,节省编译时间

makefile文件命名规则
makefile和Makefile都可以,推荐使用Makefile。
make工具的安装

sudo apt install make

2、Makefile语法规则

一条规则:

目标:依赖文件列表
< Tab >命令列表

Makefile基本规则三要素:
(1)目标:
通常是要产生的文件名称,目标可以是可执行文件或其他obj文件,也可是一个动作的名称
(2)依赖文件:

  • 用来输入从而产生目标的文件
  • 一个目标通常有几个依赖文件(可以没有)

(3)命令:

  • make执行的动作,一个规则可以含有几个命令(可以没有)
  • 有多个命令时,每个命令占一行

举例说明:
测试代码:

all:test1 test2echo "hello all"
test1:echo "hello test1"
test2:echo "hello test2"

3、make命令格式

make是一个命令工具,它解释Makefile中的指令(应该说是规则)
make命令格式:
make [-f file] [ options ] [targets]

  1. [-f file]:
  • make默认在工作目录中寻找名为GNUmakefile、makefile、Makefile的文件作为makefile输入文件
  • -f 可以指定以上名字以外的文件作为makefile输入文件
  1. [options]
  • -v: 显示make工具的版本信息
  • -w: 在处理makefile之前和之后显示工作路径
  • -C dir:读取makefile之前改变工作路径至dir目录
  • -n : 只打印要执行的命令但不执行
  • -s : 执行但不显示执行的命令
  1. [targets]
  • 若使用make命令时没有指定目标,则make工具默认会实现makefile文件内的第一个目标,然后退出
  • 指定了make工具要实现的目标,目标可以是一个或多个(多个目标之间用空格隔开)

4、Makefile中的变量

在Makefile中使用变量有点类似于c语言中的宏定义,使用该变量相当于内容替换,使用变量可以使Makefile易于维护,修改内容变得简单

1、自定义变量
(1)定义变量方法:
变量名=变量值
(2)引用变量:
$(变量名) 或 ${变量名}

(3) makefile的变量名:

  • makefile变量名可以以数字开头
  • 变量是大小写敏感的
  • 变量一般都在makefile的头部定义
  • 变量几乎可在makefile的任何地方使用

makefile具体使用:
第一层:显式规则

#格式:
#目标文件:依赖文件
#[TAB]指令
#第一个目标文件是最终目标!!!
#伪目标:.PHONY:
#伪目标使用格式:make 伪目标名
#cricle.c cricle.h cube.c cube.h main.c main.h
#得到可执行文件 testtest:circle.o cube.o main.ogcc circle.o cube.o main.o -o test
circle.o:circle.cgcc -c circle.c -o circle.o
cube.o:cube.cgcc -c cube.c -o cube.o
main.o:main.cgcc -c main.c -o main.o.PHONY:
clear:rm -rf circle.o cube.o main.o

第二层:变量

#格式:=(替换) +=(追加) :=(恒等于)
#使用$()进行替换
TAR=test
OBJ=circle.o cube.o main.o
cc:=gcc$(TAR):$(OBJ)$(cc) $(OBJ) -o $(TAR)
circle.o:circle.c$(cc) -c circle.c -o circle.o
cube.o:cube.c$(cc) -c cube.c -o cube.o
main.o:main.c$(cc) -c main.c -o main.o.PHONY:
clear:rm -rf $(OBJ)

第三层:隐含规则

#格式:%.c %.o表示任意的.c或者.o文件         *.c  *.o表示所有的.c或者.o文件$(TAR):$(OBJ)$(cc) $(OBJ) -o $(TAR)%.o:%.c$(cc) -c %.c -o %.o.PHONY:
clear:rm -rf $(OBJ)

第四层:通配符 $^所有的依赖文件 $@所有的目标文件, $< 所有的依赖文件的第一个文件

$(TAR):$(OBJ)$(cc) $^ -o $@%.o:%.c$(cc) -c $^ -o $@.PHONY:
clear:rm -rf $(OBJ)
http://www.yayakq.cn/news/881576/

相关文章:

  • 杭州免费网站制作如何自己开发一个网站
  • 电子商务网站建设规划实践成果pvc建筑模板生产厂家
  • 建设一个网站需要什么设备网页制作个人简历模板教程
  • 山东美建站猎头公司网站建设方案
  • 做网站需注意事项做动图的网站
  • 建站公司专业团队企业邮箱下载app下载
  • 怎样做淘宝推广网站做相片软件网站
  • 传奇购买域名做网站wordpress手游
  • 参考消息官方网站阅读北京公司摇号
  • 电子商务网站怎么做seo越秀区建设水务局网站
  • 大邯郸网站深圳做企业网站的公司推荐
  • 网站网站制作网站的怎么可以自己做网站被百度收到
  • 个人建设视频网站可以做外链视频的网站
  • 用dede做的网站软件开发培训学校porin
  • 校园网站建设方向商标版权的应用
  • 海南澄迈网站建设制作旅游网站设计概述
  • wordpress子目录站点选择主题觅知网免费素材图库
  • 两学一做网上答题网站为什么要用国外服务器做网站
  • 网站开发哪种语言更安全wordpress 地图相册
  • 园洲做网站公司互联网建设网站的的好处
  • 刷赞网站推广软件ios+wordpress
  • 外贸soho 网站建设有没有做语文题的网站
  • 网站建设提供ftp网络建设企业网站
  • 做外汇的人一般看什么网站如何加入小说网站做打字员
  • 阿里云做网站吗怎么查看自己的网站是否被百度收录
  • html网站要怎么做的微信公众平台网页版登陆
  • 网站建设中敬请期待广安网站制作设计
  • 如何在网站中做公示信息网站开发程序介绍
  • 佛山网站开发公司有哪些广告设计与制作参加比赛收获
  • 大连网站制作怎么做企业所得税计算方式