【问题标题】:GNU make --jobs option in QMAKEQMAKE 中的 GNU make --jobs 选项
【发布时间】:2010-11-17 20:15:34
【问题描述】:

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

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

【问题讨论】:

  • 手动运行“make -j 5”有什么问题?
  • 问题是由于 Makefile 中的指令,make 被自己再次调用并丢弃所有标志。

标签: qt qt4 makefile mingw qmake


【解决方案1】:

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

set MAKEFLAGS=-j4
make

【讨论】:

    【解决方案2】:

    这对我有用:

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

    【讨论】:

      【解决方案3】:

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

        qmake
        make MAKE="mingw32-make -j4"
      

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

      【讨论】:

        猜你喜欢
        • 2010-12-06
        • 2021-12-24
        • 2021-05-27
        • 2014-06-28
        • 2011-05-02
        • 2015-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多