QMAKE_EXTRA_COMPILERS可以生成错误的makefile

时间:2012-10-19 15:17:05

标签: qmake

这是一个很长的镜头,但也许有人有一些见解。

我遇到的情况是我使用QMAKE_EXTRA_COMPILERS生成一些看起来像这样的文件:

 ExtraGen.name = Extra Generated
 ExtraGen.input = EXTRA_GEN
 ExtraGen.output = $${GEN_FILE_DIR}/${QMAKE_FILE_BASE}.h
 ExtraGen.command = $${CODE_GEN} ${QMAKE_FILE_IN} --output=${QMAKE_FILE_OUT}
 ExtraGen.variable_out = HEADERS
 silent:ExtraGen.commands = @echo Processing ${QMAKE_FILE_IN} && ExtraGen.commands
 QMAKE_EXTRA_COMPULERS += ExtraGen

漂亮的海峡前锋,它的工作方式似乎太多了。但是,如果我以某种方式构建它,我可以让QMake产生一个糟糕的makefile。

所以它的效果很好:

 make clean
 qmake

这会产生一个带有相关部分的makefile,如下所示:

 ###### Compile
 ../Binaries/.obj/Monitor.o Monitor.cpp Monitor.h \
      ../../Code/App/Xml/Monitor.xml

我执行此操作时失败:

 make
 qmake
 make clean

生成的makefile路径不正确。相关部分如下:

 ###### Compile
 ../Binaries/.obj/Monitor.o Monitor.cpp Monitor.h \
      ../App/Xml/Monitor.xml

因此,当我构建应用程序时,我将得到一个没有规则来制作目标错误,因为gcc无法找到Monitor.xml依赖项。

总结一下,如果在发出qmake时已经创建了生成的文件,QMake就会翻转。这是预期的,还是我遇到了一个没有人遇到过的奇怪的用例?

- 奥西

0 个答案:

没有答案