我有一個名爲OBJECTS的Makefile變量中的對象列表,對於命令緩衝區來說太大了。所以我用下面的方法來創建一個文件中列出的對象(傳遞給AR):從一個大的Makefile變量創建一個文件
objects.lst:
$(foreach OBJ,$(OBJECTS),$(shell echo "$(OBJ)">>[email protected]))
雖然這工作是極其緩慢(在Cygwin至少)我不喜歡依靠shell命令和重定向。
此外,foreach不是爲此目的而設計的 - 它在任何命令運行之前都會被評估,這意味着在追加之前我不能例如rm -f objects.lst
。
有沒有更好的方法?我不想使用增量歸檔,因爲這會導致多個作業出現問題。
我能想到的唯一事情就是用一個單獨的腳本解析Makefile以讀取對象列表或將對象列表存儲在單獨的文件中。兩種解決方案都有其自身的問題。
不過打這個 化妝錯誤:execvp:/ bin/sh:參數列表太長 make:*** [objects.lst]錯誤127 – sholte 2012-10-01 23:51:20