您好我是MakeFile的新手,所以在运行以下MakeFile时什么都没有。
assign.pdf:assign.svg
inkscape -D -A assign.pdf assign.svg
.git:assign.svg assign.pdf
git init
:assign.pdf assign.svg .git
git add assign.pdf assign.svg
:assign.pdf assign.svg .git
git commit -m "File Added to git repositry"
这个makefile的目的是首先使用inkscape从.svg生成.pdf,然后生成git repositry并将这些文件添加到git中。
它只生成pdf文件而没有做任何其他事情。
如果有人知道..请帮忙。
答案 0 :(得分:1)
除非你告诉它,否则make
只构建makefile中定义的第一个目标,该makefile中的第一个目标是assign.pdf
。
通常,您将类似all
的目标作为makefile中的第一个目标:
all: .git assign.svg assign.pdf
.git:
git init
规则行:
:assign.pdf assign.svg .git
git add assign.pdf assign.svg
:assign.pdf assign.svg .git
git commit -m "File Added to git repositry"
令人费解。结肠左侧没有目标;我不确定他们何时会被识别并采取行动。
您正在检查派生文件assign.pdf
。有时候这是必要的,但你应该很少这样做。
我不清楚您尝试建模的工作流程。可能是:如果assign.svg
自上次创建assign.pdf
后发生了更改,请重建assign.pdf
并确保assign.svg
和assign.pdf
都是最新的存储库。如果是这样,那么你可以使用:
assign.pdf: assign.svg
inkscape -D -A assign.pdf assign.svg
git add assign.pdf assign.svg
git commit -m 'Automatic commit of assign.pdf and assign.svg' assign.pdf assign.svg
你可能应该计划更多地使用宏,但首先正确使用它也是一个好主意。