2013-03-28 30 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

相关问题