一个工具用于编译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会忽略隐式规则吗?
答案 0 :(得分:0)
但这无济于事,对吗?问题不在于Test.idl
仅生成,问题是生成的文件和输入文件使用相同的名称。
没有解决方法,您需要更改源文件名或编译的文件名。
一种好方法是从下游组件中删除.idl
。
更新
啊哈,你可以取消从.c文件制作无扩展名链接文件的隐式规则。只需定义一个没有配方的模式规则,如here in gmake docs.
所述