我可以在Makefile中指定某些文件是源文件吗?

时间:2013-01-11 17:25:01

标签: makefile gnu-make

一个工具用于编译idl。当编译test.idl时,我们得到test.idl.h& test.idl.cc   我想在更新它时重新编译idl。但现在我遇到了循环依赖:

                Test.idl.cc  => Test.idl             ( use tool to generate Test.idl.cc )
                Test.idl     => Test.idl.o           ( It's a implicit rule !!! )
                Test.idl.o   => Test.idl.cc

然后,有些事情会发生。

我该怎么做才能修复它?在实践中很难修改工具来改变输出文件名。

我可以指定* .idl是源文件吗?那么make会忽略隐式规则吗?

1 个答案:

答案 0 :(得分:0)

但这无济于事,对吗?问题不在于Test.idl仅生成,问题是生成的文件和输入文件使用相同的名称。

没有解决方法,您需要更改源文件名或编译的文件名。

一种好方法是从下游组件中删除.idl

更新

啊哈,你可以取消从.c文件制作无扩展名链接文件的隐式规则。只需定义一个没有配方的模式规则,如here in gmake docs.

所述