当使用默认的 qmake 编译器(通过SOURCES
变量)时,我可以像这样使用预编译的头文件:
CONFIG += precompile_header
PRECOMPILED_HEADER = stable.h
SOURCES = main.c
但是,我想使用自定义编译器(通过QMAKE_EXTRA_COMPILERS
)。我试过这个:
CONFIG += precompile_header
PRECOMPILED_HEADER = stable.h
MY_SOURCES = main.c
my.input = MY_SOURCES
my.output = ${QMAKE_FILE_IN_BASE}.o
my.commands = clang $$QMAKE_CFLAGS_USE_PRECOMPILE -c ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
QMAKE_EXTRA_COMPILERS += my
...并且预编译头文件已构建,但我的自定义编译器失败,因为QMAKE_CFLAGS_USE_PRECOMPILE
不包含预编译头文件的路径。(它被定义为-Xclang -include-pch -Xclang ${QMAKE_PCH_OUTPUT}
,显然${QMAKE_PCH_OUTPUT}
是空的。)
如何获取生成的预编译头文件的名称,以便将其作为参数传递给我的自定义编译器?