我對makefile非常新穎。我之前完成的最複雜的任務是在已經設計的makefile中包含新的.h和和.cpp或.c文件。如何動態重命名生成文件中的目標文件
我必須將項目的編譯過程從Visual Studio移植到gcc,並且有一個已經爲同事編寫的解決方案,但他使用了4個bash腳本和一個makefile來編譯解決方案。
而不是這樣做,我正在尋找解決方案,以便於維護。我承認我的問題可能非常愚蠢,但我無法在任何地方找到它,也無法正確理解它。
在下面的目標:
$(OBJECTS): %.o: %.cpp
$(CC) $(CPPFLAGS) -c $< -o [email protected]
我想測試是否正在創建的.o已經存在,並且其重命名爲別的東西。這是必要的,因爲在項目中有幾個具有相同名稱的源文件,但內容不同。
例如,如果正在編譯的當前.cpp被稱爲file.cpp,並且將生成的對象是file.o,那麼該規則應該測試file.o是否已經存在,並將當前file.o重命名爲某個其他。
如果你知道任何解釋這一點的好教程,請讓我知道。我發現了很多示例,展示瞭如何對由該規則編譯的當前文件進行測試,但沒有一個會重命名對象.o。
在此先感謝,並對此處寫下的任何「啞巴」感到抱歉。 :-)
我過去所做的是將對象文件放置在與源文件相同的目錄層次結構中。我想你有不同級別的文件名稱相同? – Max 2011-04-25 19:10:55
@Max,是的。有兩個不同的目錄,其中源文件命名爲file1.cpp file2.cpp等。 – zlogdan 2011-04-27 12:31:41