我正在使用qmake为我们正在开发的小型Qt C ++应用程序生成MinGW32 Makefile。我的问题:所有那些双核/四核CPU都闲置着,而只有一个线程正在进行构建。为了并行化我尝试传递的东西--jobs 4来制作,但问题是qmake生成一个通用的makefile,其中make会被-f再次调用。
是否有可能强制qmake在生成makefile时添加要生成的选项?或者也许还有另一种方法可以在qmake之外设置选项吗?我无法编辑该特定的Makefile,因为它是每次构建时自动生成的。
答案 0 :(得分:18)
滥用$MAKE
传递选项并不适用于所有情况。通常,(例如在Unix上的Qt的配置脚本中),它用双引号("$MAKE"
)括起来以允许命令包含空格。我知道,因为我在停止工作之前使用了相同的技巧。然后,Qt支持建议(正确地)使用{/ 1}},如
$MAKEFLAGS
答案 1 :(得分:3)
这对我有用:
设置MAKE_COMMAND = mingw32-make -j%NUMBER_OF_PROCESSORS%
答案 2 :(得分:2)
通用Makefile在调用make时使用$(MAKE)
,因此您可以使用环境变量覆盖它。这样的事情应该这样做:
qmake
make MAKE="mingw32-make -j4"
当然需要替换MAKE
的值:)