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

品牌网站建设 结构reactjs 做网站

品牌网站建设 结构,reactjs 做网站,重庆企业网站建站,犀牛云做网站编辑上传前言 当我们需要编译一个比较大的项目时#xff0c;编译命令会变得越来越复杂#xff0c;需要编译的文件越来越多。其 次就是项目中并不是每一次编译都需要把所有文件都重新编译#xff0c;比如没有被修改过的文件则不需要重 新编译。工程管理器就帮助我们来优化这两个问题…前言 当我们需要编译一个比较大的项目时编译命令会变得越来越复杂需要编译的文件越来越多。其 次就是项目中并不是每一次编译都需要把所有文件都重新编译比如没有被修改过的文件则不需要重 新编译。工程管理器就帮助我们来优化这两个问题。 MakeFile就类似于make工程管理的工作的脚本。用来告诉工程管理器如何正确的编译我们的程 序 依赖于目标的关系 在MakeFile中依赖于目标是相互的并不是绝对 比如 a.c 是生成a.o的一个依赖文件 对于a.o 则是a.c的目标a.o 又是image的依赖。 在我们使用make 进行编译的时候工程管理器则会根据依赖于目标的关系来检查它们之间时间戳 关系如果依赖有给你更新那么目标文件则需要执行。 安装make sudo apt install make语法 target : tgt_dependency1 tgt_dependency2 ...command注意 目标必须存在 依赖可以没有 命令前面必须是一个制表符TAB Makefile 文件的命名一般是 Makefile没有后缀也没有前缀 如果规则中没有写依赖则无论如何该规则该规则都会执行 如果目标已经存在然后也没有写依赖则不执行该规则 示例1 Even:Jacyecho Hello MakefileJacy:ChuiHuaecho Hello EvenChuiHua:echo Hello Jacy执行 make // 工程管理器把第一个目标当成最终目标 Even make Jacy // 告诉工程管理器 Jacy是我们需要的最终目标示例2 ./bin/main:./src/*.cgcc ./src/*.c -o ./bin/main -I./inc -L./lib -lmy_lib示例3 animal_assembly : moose goose catcommand moose : antlers hooves furcommand goose : beak wings webbed_feet interest_in_breadcommand cat : whiskers evil_personalitycommand当不带参数调用时将尝试构建目标animal_assembly。 假设依赖项moose、goose和cat已经在目录中可用它将完全忽略它们的规则并animal_assembly从现有内容构建。 如果moose和cat可用但goose不可用它会注意到moose存在看到goose不存在寻找要构建的规则goose找到规则构建goose然后注意cat存在和构建animal_assembly。 如果 moose, goose, cat都不存在则必须使用可用规则构建所有这些。 一个好的经验法则是将最后和最重要的命令对于我们的目的最终将目标文件链接在一起成为可执行文件的命令放在顶部。 变量 变量和函数的展开除规则的命令行以外是在make读取Makefile文件时进行的这里的变量包括了使用“”定义和使用指示符“define”定义的变量。变量可以用来代表一个文件名列表、编译选项列表、程序运行的选项参数列表、搜 索源文件的目录列表、编译输出的目录列表和所有我们能够想到的事物。变量名不能包括“:”、“#”、“”、前置空白和尾空白的任何字符串。需要注意的是 尽管在GNU make中没有对变量的命名有其它的限制但定义一个包含除字母、数字和下 划线以外的变量的做法也是不可取的因为除字母、数字和下划线以外的其它字符可能会在 以后的make版本中被赋予特殊含义并且这样命名的变量对于一些Shell来说不能作为环 境变量使用。变量名是大小写敏感的。变量“foo”、“Foo”和“FOO”指的是三个不同的变量。Makefile传统做法是变量名是全采用大写的方式。推荐的做法是在对于内部定义的一般变量例如目标文件列表objects使用小写方式而对于一些参数列表例如编译选项CFLAGS采用大写方式这并不是要求的。但需要强调一点对于一个工程所Makefile 中的变量命名应保持一种风格否则会显得你是一个蹩脚的开发者就像代码的变量命名风格一样随时有被鄙视的危险。另外有一些变量名只包含了一个或者很少的几个特殊的字符符号。称它们为自 动化变量。像“”、“”、“?”、“*”、“D”、“%F”、“^D”等等后面会详 述之。变量的引用跟Shell脚本类似使用美元符号和圆括号比如有个变量叫A那么对 他的引用则是$(A)有个自动化变量叫则对他的引用是$()有个系统变量是CC则 对其引用的格式是$(CC)。对于前面两个变量而言他们都是单字符变量因此对他们引用 的括号可以省略写成$A和$。 自定义变量 顾名思义就是用户自己定义的变量 A apple # 定义并赋值变量 B I love China C $(A) tree # $() 则是对某一个变量进行引用Even: echo $(A) echo $(B) echo $(C)通过自定义变量来修改的Makefile 第二版本 TAG./bin/main SRC./src/*.c CCgcc O-o CONFIG-I./inc -L./lib -lmy_lib$(TAG):$(SRC)$(CC) $(SRC) $(O) $(TAG) $(CONFIG)clean:rm ./bin/*系统变量 自动化变量 自动化变量的值会自动发生变化 Makefile 中定义的变量有以下几种不同的方式 1递归定义方式 A I love $(B) # 在第一行使用到变量B但是还没有定义以此管理器进行全文搜索找到B并引用 B China2直接定义方式 B China A : I love $(B)此处定义 A 时用的是所谓的“直接”定义方式说白了就是如果其定义里出现有对 其他变量的引用的话只会其前面的语句进行搜寻不包含自己所在的那一行而不是搜 寻整个文件因此如果此处将变量 A 和变量 B 的定义交换一个位置 A : I love $(B) # A在B之前引用B 则为空 B China则 A 的值将不包含 China因此在定义 A 时 B 的值为空。 3条件定义方式 有时我们需要先判断一个变量是否已经定义了如果已经定义了则不作操作如果没有 定义再来定义它的值这时最方便的方法就是采用所谓的条件定义方式 A apple A ? I love China此处对 A 进行了两次定义其中第二次是条件定义其含义是如果 A 在此之前没有 定义则定义为“I love China”否则维持原有的值。 4多行命令定义方式 define commands echo “thank you!” echo “you are welcome.” endef此处定义了一个包含多行命令的变量commands我们利用它的这个特点实现一个完 整命令包的定义。注意其语法格式以define开头以endef结束所要定义的变量名必须 在指示符“define”的同一行之后指示符define所在行的下一行开始一直到“end”所在行的 上一行之间的若干行是变量的值。这种方式定义的所谓命令包可以理解为编程语言中的 函数。 Makefile中的变量还有以下几种操作方式 1追加变量的值例如 A apple A tree这样变量A的值就是apple tree。 2修改变量的值例如 A srt.c string.c tcl.c B $(A:%.c%.o)输出为srt.o string.o tcl.o 第三个版本 TAG./bin/main SRC./src/Input.c ./src/main.c ./src/Oper.c ./src/Output.c OBJ$(SRC:%.c%.o) CCgcc O-o CONFIG-I./inc $(TAG):$(OBJ)$(CC) $(^) $(O) $() $(CONFIG)%.o:%.c$(CC) $ -o $() $(CONFIG) -c clean:$(RM) ./bin/* ./src/*.o函数 $(subst FROM,TO,TEXT)功能将字符串 TEXT 中的字符 FROM 替换为 TO。 返回替换之后的新字符串。 范例 A $(subst pp,PP,apple tree)替换之后变量 A 的值是”aPPle tree” $(wildcard PATTERN)功能获取匹配模式为 PATTERN 的文件名。 返回匹配模式为 PATTERN 的文件名。 范例 A $(wildcard *.c)假设当前路径下有两个.c 文件 a.c 和 b.c则处理后 A 的值为”a.c b.c”。 override一个变量例如 override CFLAGS -Wall.PHONY 来明确地告诉 Makefile,不要对 clean 运用任何隐式规则,不能运用隐式规则的目标被称为 伪目标 .PHONY:clean 用来修饰 clean 清空的工作不会被误以为是一个目标来执行第四版本通用版本 TAG./bin/main SRC $(wildcard src/*.c) OBJ$(SRC:%.c%.o) CCgcc override CONFIG -I./inc $(TAG):$(OBJ)$(CC) $(^) -o $() $(CONFIG)%.o:%.c$(CC) $ -o $() $(CONFIG) -c clean:$(RM) ./bin/* ./src/*.o.PHONY:clean
http://www.hkea.cn/news/14484762/

相关文章:

  • 什么是指定网站的域名html在线模板
  • 论坛网站如何备案上海网络维护公司20强
  • 有一个外国网站专门做街头搭讪怎么用自己电脑当服务器建设网站
  • 网站制作评价标准wordpress本地备份
  • 资阳网站优化万网备案初审过了后网站能访问吗
  • 网站的建设与维护有什么作用dewplayer wordpress
  • 关于美术馆网站建设的方案网站赚钱
  • 网站源码分享网服装设计师参考的网站
  • 企业做网站设计手机网站开发需求 百度云盘
  • 淘宝怎么才能发布网站建设建筑网格组织
  • 可以直接做室内su的网站社交网络的推广方法有哪些
  • 网站开发合同需要交印花税吗网站单页面
  • 免费服务器ip上海企业seo
  • 东莞免费建站在线咨询广西外贸app
  • 网页区设计网站诊断软件开发主要是干什么的
  • 天河区网站建设公司做外包软件的网站
  • 网站专项审批查询天津网站建设求职简历
  • 网站设计遇到的问题吴江区建设工程招标网站
  • wordpress安装出错大连 祥云 网站优化
  • 福田附近做网站公司做网站数据库怎么建
  • 北京市专业网站制作企业word上下页纸张方向
  • 官网优化哪家专业大型网站建设优化排名
  • 汽车网站建设页面工业设计最吃香的专业
  • 长沙手机模板建站wordpress设置水印
  • 网站整站截图网创是什么
  • 找网站建设都需要注意哪些域名和服务器的关系
  • 购wordpress谷歌seo怎么优化
  • 网站建设设计收费2个域名指向同一个网站
  • 设计师常去的网站深圳房地产网站开发
  • 网站建设行业有什么认证吗网站建设中 目录怎么做更好