我有例如。的源文件的列表分配給一個變量內,生成文件,並想 在構建時弄清楚,是否有兩次列出的條目可能麻煩構建過程及其結果:檢索包含在make變量中的列出元素的多餘條目
實施例:
ListofSource = ./a/hello.c ./b/sys.c ./c/input.c ./d/hello.c
怎麼可能來分析/過濾ListofSource檢索列表
DuplicateSources = ./a/hello.c ./d/hello.c
功能$(排序列表)排序列表,並刪除多餘的條目,我需要相反的行爲。 是否存在可應用的任何make功能?
當$ {LIST}沒有排序但沒有重複時失敗。我建議你需要比較'$(words ...)'的輸出:'ifneq($(words $ {LIST}),$(words $(sort $ {LIST})))...'。 (哦,和你的測試是錯誤的方式。) – bobbogo
@bobbogo:你說錯了,但你可能要求列表按照排序順序「你沒有看到? '$(words)'的使用並不是一個可怕的想法,但是你不用'$ {}'來展開'make'中的變量。 –
哦,你是的!我通常爲函數保留'$()',爲用戶變量保留'$ {}'(perl methinks太多)。提高可讀性恕我直言。你的措詞是對的。只要列表需要排序,但仍然保留重複,這本身就是一個問題! – bobbogo