2013-04-12 49 views
0

我是一個Linux和make的新手,我寫了一個makefile來自動將.tex文件編譯爲.pdf。但是,當我打電話做,它說:「對於‘first.pdf’做沒有什麼」,這是我的makefile:make:沒有什麼可以做的first.pdf

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

我想,'first.pdf'比'首先更新。 tex'。 – Matthias

+0

你可能想用'remake -x'來調試你的'Makefile'。所以安裝'remake' –

+0

@Matthias但沒有first.pdf那裏... –

回答

2

可能是後綴之一未知。 您可以添加.SUFFIXES指令:

TEXFILE=first.tex 
PDF=$(TEXFILE:.tex=.pdf) 

.SUFFIXES: .tex .pdf 
# etc.  

然而,優於使用過時的後綴規則,你應該使用模式規則:

%.pdf : %.tex 
     pdflatex $< 
+0

感謝您的回答,它適用於我。 –

+0

還有一個問題,我已經得到了.pdf,但它沒有打開,並且日誌,aux,toc文件沒有清理,它怎麼可能? –

+0

@PhilipZhang:你分別叫'make view'和'make clean'嗎? – Matthias

相關問題