这是一个很长的镜头,但也许有人有一些见解。
我遇到的情况是我使用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就会翻转。这是预期的,还是我遇到了一个没有人遇到过的奇怪的用例?
- 奥西