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

网站建设技术分享在线营销推广

网站建设技术分享,在线营销推广,个人做网站法律风险,商标logo初识"Makefiles" 创建一个 “Makefile” 文件 touch Makefile“touch” 用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,则重新建立一个新的文件。这里有两个需要我们注意的: 进入并编辑"…

初识"Makefiles"

创建一个 “Makefile” 文件
touch	Makefile

“touch” 用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,则重新建立一个新的文件。这里有两个需要我们注意的:

进入并编辑"Makefile" 文件
vim Makefile
Hello:echo "hello, word"
编译 “Makefile” 文件
make Makefile

Makefile语法

Makefile由一组rules组成。rule通常如下所示:

targets : prerequisitsecommandcommandcommand
  • tatgets (目标)是文件名,用空格分割。通常每个 rule 只有一个
  • commands (命令) 是通常用于创建目标的一系列步骤,这些需要以制表符(tab)开头,不可以是空格
  • prerequisites(先决条件)也是文件名,用空格分割。在运行目标命令之前,这些文件需要存在。这些也称为 dependencies(依赖项)
创建一个更典型的 Makefile-一个编译单个C文件的Makefile.
  • 创建一个名为"blah.c"文件
int main()
{return 0;
}
  • 然后创建 Makefile
blah:cc blah.c -o blah

因为没有先决条件,所以第一次运行将会编译获取blah文件(编译失败可能是没有安装gcc),以后无论如何更改 blash.c 并再编译的时候则会显示"blah 已是最新"

我们通过添加一个先决条件来解决这个问题:
blah:blah.ccc blah.c -o blah

这样在 blah.c 发生改变的时候,再使用 make 编译,blah将会被编译

另一个列子
blah:blah.occ blah.o -o blah
blah.o :blah.ccc -c blah.c -o blah.o
blah.c:echo "int main(){return 0;}">blah.c
下一个示例
some_file:other_fileecho "This  will always run, and这里有两个需要我们注意的:
- runs second"touch some_file
other_file:echo "This will always run, and runs first"

这个示例刚开始我有点迷,为什么touch some_file会让 Makefile 可以多次编译呢,some-file 的时间戳是比other-file新的,其实这个不管 touch some-file 的事情,是因为 other-file 始终不是一个文件。

Make clean
some_file:touch some_file
clean:rm -f some_file

这里有两个需要我们注意的

  • 它不是第一个目标(默认目标)也不是先决条件。这意味着除非显示调用 make clean,否则它永远不会被调用
  • 它不是一个文件名。如果碰巧有一个名为“clean”的文件,则此目标将无法运行,这不是我们想要的结果 ,以后会使用 .PHONY 用来解决此问题

变量

变量只能是字符串。

示例
files:file1 file2
some_file:$(files)echo "Look at this variable:"$(this)touch some_file
file1:touch file1
file2:touch file2clean:rm -f file1 file2 some_file

使用$() 或 $() 引用变量

x := dudeall:echo $(x)echo  ${x}
#不好的做法,但是有效echo $x

习惯上使用第一种用法

目标
all目标

可以人为的制作一个 all 目标

all: one two threeone:touch one
two:touch two
three:touch threeclean:rm -f one two three

由于这是列出的第一个规则,因此如果调用 make 而未指定目标,则默认情况下它将运行

多目标
all:f1.o f2.o
f1.o f2.o:echo $@
# 相当于:
#f1.o
#	echo f1.o
#f2.o
#	echo f2.o 

$@ 是包含目标名称的自动变量

http://www.dt0577.cn/news/49366.html

相关文章:

  • 律师怎样做网站seo关键词优化要多少钱
  • 平面设计人才网广州seo实战培训
  • thinkphp5 做网站怎么做电商平台
  • 网站开发的大致流程打开2345网址大全
  • 宝鸡品牌网站建设手机上如何制作自己的网站
  • 建一个营销网站的步骤全球热门网站排名
  • 简单网站建设推荐腾讯会议付费
  • 深圳门户网站建设方案站长平台
  • 深圳永久免费网站建设哪个好武汉大学人民医院院长
  • 建网站费用记技术服务费域名注册服务网站
  • 做期货在哪个网站看消息seo的基本工作内容
  • 网站费有发票怎么做会计分录站长工具关键词排名怎么查
  • 岳阳做公司网站网络营销有本科吗
  • python做网站比php好厦门网站优化
  • pc端网站营销春哥seo博客
  • 请人做网站多少钱网址关键词查询网站
  • 手机商城建站系统网站建设网课培训机构排名前十
  • 肥乡专业做网站网页设计期末作业模板
  • 企业网站 模版东莞关键词排名优化
  • 日报做的地方网站宁波seo关键词优化方法
  • 2018年公司网站建设费分录哪家培训机构学校好
  • 微信兼职网站开发北京网站优化排名推广
  • 新手站长做装修网站网站优化价格
  • 企业网站建设内存顶尖文案
  • 大兴网站建设价格网站如何提交百度收录
  • 网站开发过程中遇到的问题及解决办法企业推广方法
  • 黄冈建设局网站竞价推广外包
  • 怎么做b2c网站百度服务电话
  • 山西大川建设有限公司网站小红书关键词排名怎么做
  • 免费推广网站平台排名百度seo站长工具