5

我正在使用 qmake 为我们正在开发的小型 Qt C++ 应用程序生成 MinGW32 Makefile。我的问题:所有那些双/四核 CPU 都闲置在那里,而只有一个线程在构建。为了使事情并行化,我尝试通过 --jobs 4 进行制作,但问题是 qmake 生成了一个通用的 makefile,其中 make 再次使用 -f 调用。

生成makefile时是否可以强制qmake添加选项?或者也许还有另一种方法可以完全在 qmake 之外设置选项?我无法编辑那个特定的 Makefile,因为它是每次构建时自动生成的。

4

3 回答 3

18

滥用$MAKE传递选项并非在所有情况下都有效。通常,(例如,在 Unix 上的 Qt 配置脚本中),它用双引号 ( "$MAKE") 括起来以允许命令包含空格。我知道是因为我在它停止工作之前使用了相同的技巧。Qt Support 然后建议(正确地)$MAKEFLAGS使用

set MAKEFLAGS=-j4
make
于 2009-08-08T09:20:59.130 回答
3

这对我有用:

设置 MAKE_COMMAND=mingw32-make -j%NUMBER_OF_PROCESSORS%

于 2010-02-18T01:24:39.767 回答
2

调用 make 时使用通用 Makefile $(MAKE),因此您可以使用环境变量覆盖它。这样的事情应该这样做:

  qmake
  make MAKE="mingw32-make -j4"

当然根据需要替换的值MAKE:)

于 2009-08-07T21:57:15.590 回答