我是linux的新手并且make,我编写了一个makefile来自动将.tex文件编译为.pdf。但是当我打电话给make时,它说“没有什么可以做'first.pdf'”,这是我的makefile:
TEXFILE= first.tex
PDF= $(TEXFILE:.tex=.pdf)
.tex.pdf:
pdflatex $<
$(PDF):$(TEXFILE)
view:
evince $(PDF)
clean:
@rm -f \
$(TEXFILE:.tex=.log) \
$(TEXFILE:.tex=.aux) \
$(TEXFILE:.tex=.toc)
任何人都可以告诉我它有什么问题吗?
答案 0 :(得分:2)
可能其中一个后缀未知。
您可以添加.SUFFIXES
指令:
TEXFILE=first.tex
PDF=$(TEXFILE:.tex=.pdf)
.SUFFIXES: .tex .pdf
# etc.
但是,比使用过时的后缀规则更好,您应该使用模式规则:
%.pdf : %.tex
pdflatex $<
答案 1 :(得分:0)
如果将写入拆分为多个.tex文件,则存在此问题。
make
可以成功,但是除非您修改first.tex
,否则您将获得:
“'first.pdf'不需要做任何事情
# ...
# include all text files from current directory
SOURCES := $(shell find . -name '*.tex')
# include files figs directory ...
SOURCES += $(shell find ./figs)
# ...
# add sources here will cause recompilation when something is modified
$(PDF):$(TEXFILE) $(SOURCES)
# some phony targets
.PHONY: all pdf view clean