我有一個項目Makefile
。這是有效的,它的工作原理:如果我輸入make
,我會得到一個在當前文件夾中編譯的二進制文件。我想找到一種以編程方式(從腳本)獲取二進制名稱的方法,或者如果make
生成多個文件,則可以獲取這些文件的完整列表。如何從Makefile獲取已編譯文件的列表?
我想可以有三種方式來做到這一點:
- 執行
make -d
或類似的東西,並分析其輸出來獲得文件名。它有多可靠?它是否適用於所有Makefile
或僅適用於最標準的? - 要調用一些特殊的
make
命令來清除所有目標文件,所以我得到只有生成的目錄中的二進制文件。有這樣的命令嗎? - 解析
Makefile
的內容,並從中獲得所有信息與外國公用事業。再說一次,它有多可靠?
我想找到任何Makefile
基於項目的通用解決方案,但如果有一種通過CMake的生成的特定解決方案,這將有助於我在某些情況下,太。
'make -p'的輸出可能比'make -d'更有用;它列出了具有擴展包含和完整內置規則等的完整生成文件。這爲您提供了一整套適用的規則。然後你必須知道'make'如何處理推斷的依賴關係(規定'給定一個目標'target',它可以從'target.c'構建,可能通過'target.o'鏈接推理)。請注意,大多數'makefile's可以創建大量未列出的目標。如果目錄中有一個'source.c'文件,無論是否有'makefile',通常都會輸入'make source'。 –