2008-08-30 57 views
2

我使用名爲Lazy C++的此工具將單個C++ .lzz文件分解爲.h和.cpp文件。我希望Makepp預計這兩個文件在用於生成.lzz文件的規則之後存在,但我不確定如何將兩個目標放入單個生成線。使用兩個目標創建源

回答

3

我從來沒有用過Makepp個人,但因爲它是一個下拉更換爲GNU做,你應該能夠做一些事情,如:

build: foo.h foo.cpp 
    g++ $(CFLAGS) foo.cpp -o $(LFLAGS) foo 

foo.h foo.cpp: foo.lzz 
    lzz foo.lzz 

還不能確定LZZ調用那裏,但這應該有所幫助。你可以在http://theory.uwinnipeg.ca/gnu/make/make_37.html閱讀更多關於此。

2

Lzz很棒!這正是我一直在尋找http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c50de73b70a6a957/f3f47fcdcfb6bc09

其實你需要的是依賴(典型值)上foo.o將在您的鏈接的規則和模式規則調用LZZ:

%.cpp %.h: %.lzz 
    lzz $(input) 

其餘的將自動歸位。編譯任何包含foo.h的源代碼,或將foo.o鏈接到庫或程序時,lzz將首先自動調用。

Makepp也會識別是否只有時間戳而不是生成文件的內容發生變化,並忽略它。但通過使用lzz選項來禁止重新創建相同的文件,可以減少它的使用。

問候 - 丹尼爾

+0

感謝您的鏈接,這是一個有趣的討論。順便說一句,我完全和你在一起,我很感謝你耐心的解釋你的立場,特別是針對一些非常粗魯的答案。 – 2011-05-18 23:58:04