0

一个工具用于编译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会忽略隐含的规则吗?

4

1 回答 1

0

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

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

一种好方法是摆脱.idl下游组件。

更新:

啊哈,好吧,您可以取消存在的用于从 .c 文件创建无扩展名链接文件的隐式规则。只需定义一个没有配方的模式规则,如gmake 文档中所述。

于 2013-01-11T17:28:18.473 回答