我已經使用了簡單的makefiles多年,但最近才被分配了學習大量複雜的Autotools生成的makefiles的來龍去脈的任務,這些makefiles用於我的僱主購買的代碼庫。在這之中,我運行到變量聲明類似如下:這是什麼樣的Makefile變量賦值?
QOBJECT_MOCSRCS = $(QOBJECT_HEADER:%.h=.gen/moc_%.cpp) \
$(QOBJECT_SRCS:%.cpp=.gen/moc_%.cpp)
QOBJECT_DEPS = $(QOBJECT_MOCSRCS:%.cpp=.deps/%.Po)
從上下文中我最好的猜測是,這些設置文件名的名單要由構建過程提供,例如,QOBJECT_MOCSRCS應該結束(a).h文件,(b).cpp文件的列表,基於將在生成期間生成的一組中間.cpp文件的%詞幹名稱,存儲在臨時目錄./gen中。這是用來存儲mt _%。cpp文件,這些文件是Qt文件與Qt的moc工具一起構建的結果輸出的......令我瘋狂的是,我一直無法找到任何東西make我得到的文檔(主要是GNU make手冊)告訴我這種聲明的風格是什麼,所以我可以追蹤它並掌握語法。 $()的內容看起來有點像規則,而GNU make手冊中最接近的等價物似乎是規定目標特定變量值的規則,但我不知道這是否接近正確的讀數。任何人都可以指出我有適當的學習參考嗎?
謝謝!非常感謝。 – 2013-05-10 12:06:10
Dorothy:如果您覺得您的問題已被解答,請使用答案旁邊的複選圖標來標記。謝謝! – MadScientist 2013-05-10 14:57:03