2013-03-28 56 views

回答

4

新版本使之具有$(abspath ...)$(realpath ...)功能,您可以將您的先決條件和目標,以解決路徑相同的字符串。如果您自己構建了這些名稱(例如,$(PREFIX)/../filey),則可以使用$(dir $(PREFIX))filey代替。

除此之外,沒有辦法解決這個問題。 make在目標上使用字符串匹配,如果字符串不相同,它們不匹配(忽略簡單前綴./有特殊情況)即使瞭解這種區別(通過將abspath本身應用於每個目標名稱,也許)例如,面對符號鏈接仍然沒有幫助。

唯一「真正的」答案是讓make瞭解底層文件系統(例如設備ID和inode)的某些內容,讓您可以在不引用路徑名的情況下討論文件。但是,在像這樣的便攜式程序中這樣做是有問題的。

+0

感謝您的回覆。是的,這確實有幫助。看起來像gnu使版本3.81向前支持這些選項。不幸的是,我們的IT部門似乎並不急於切入該版本。所以我堅持3.79。我會試着看看我能如何解決這個問題。謝謝你的幫助。 – user2221763

+1

嗯,除了3.79.1在2000年發佈外,沒有任何其他的東西。對任何IT部門來說,13年都足夠了...... – MadScientist

相關問題