一 开发中遇到的问题
1 开发程序时,会涉及众多源文件,原则上修改一个源文件,就要重新编译所有的源文件,很不爽
2 如果只重新编译受影响的文件,可不可以?应该怎么确定这些受影响的文件呢?
二 解决问题的方法
1 Make命令
Make 记录上次更新的文件(通常是对象文件),并只更新那些需要的文件(包含更改的文件)以使源文件保持最新。
2 Makefile的结构
如果您有一个包含许多源文件和/或头文件的大程序,当您更改其他人所依赖的文件时,您必须重新编译所有相关文件
没有makefile,这是一项非常耗时的任务。
Make是设计用于开始执行makefile的Unix实用程序。makefile是一个特殊的文件,您可以创建并命名makefile(或Makefile,具体取决于系统)。在包含此makefile的目录中,您将键入make并执行makefile中的命令。如果您创建了多个makefile,请确保在键入make之前您位于正确的目录中。
makefile包含一系列规则。这些规则告诉系统你想要执行的命令。大多数情况下,这些规则是编译(或重新编译)一系列文件的命令。必须从第1栏开始的规则分为两部分。第一行称为依赖行,后面的行称为行为或命令。行为行必须用选项卡缩进。
依赖线由两部分组成。第一部分(冒号前)是目标文件,第二部分(冒号后)称为源文件。它被称为依赖线,因为第一部分取决于第二部分。多个目标文件必须用空格分隔。多个源文件也必须用空格分隔。语法如下:
目标:依赖文件
【TAB】命令
命令行一定要按一个tab键,不能按空格
当我们运行“make 目标“时,先要检查”依赖文件“是否满足,如果不满足,必须先”make 依赖文件“,如果满足 ,运行”命令”即可生成目标
三 编写一个最简单的Makefile,发布自己的项目
SHELL=/bin/bash
DOMAIN="ipfs.io"
IPFSLOCAL="http://localhost:8080/ipfs/"
IPFSGATEWAY="https://ipfs.io/ipfs/“
OUTPUTDIR=你的项目目录
deploy:
rm -rf 你的项目目录/blog ; \
ipfs add -r -q $(OUTPUTDIR) | tail -n1 >versions/current ; \
cat versions/current >>versions/history ; \
export hash=`cat versions/current`; \
echo ""; \
echo "published website:"; \
echo "- $(IPFSLOCAL)$$hash"; \
echo "- $(IPFSGATEWAY)$$hash"; \
网友评论