我在嘗試修改具有通用/特定模式特定規則的大型項目的gnu makefile。根據條件重建特定對象
該生成文件正在編譯和鏈接在單獨的規則。我有一個特定的需求,如果某個條件在鏈接時傳遞,那麼我想在再次鏈接之前再次調用編譯規則。從生成文件樣本問題如下,
$(obj_dir)/%.o: $(src_base)/%.cpp
@echo Compiling: $<
$(q)$(CXX) $(CXXFLAGS) $(REV) $(CXX_INCLUDE_PATH) -o [email protected] $<
$(link_files) :
@echo Linking [email protected]
$(q)$(CXX) $(LINKFLAGS) -o [email protected] %.o
ifeq (1,1)
#condition pass so I want to call generic above ompilation rule again
?????
else
$(warning Do Nothing)
endif
能有人幫我如何我可以遞歸或以其他方式再次調用通用的編譯規則。
幫助將不勝感激。提前致謝。
難道你不想讓對象文件成爲鏈接規則的先決條件嗎?在這種情況下,再次調用編譯規則將不會執行任何操作,因爲對象文件已經是最新的。 – Beta
謝謝。我可以添加目標文件作爲鏈接規則依賴項,或者我可以在再次調用編譯規則之前刪除生成的鏈接文件。你能幫我解決一下原來的問題:我怎樣才能在鏈接規則中再次調用編譯規則。 – Akamai
我想你誤解了Make是如何工作的。如果您有所需的目標文件列表,重新編譯編譯規則很容易,但我沒有看到這樣做。你能告訴我們爲什麼你要重建目標文件嗎? – Beta