QMAKE 中的 GNU make --jobs 选项

发布于 2024-07-30 09:49:45 字数 297 浏览 5 评论 0原文

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

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

I am using qmake to generate MinGW32 Makefiles for a small Qt C++ app we are developing. My problem: all those dual/quad core CPUs are sitting there idly while only one thread is doing the building. In order to parallelize things I tried passing --jobs 4 to make, but the problem is that qmake generates a generic makefile inside of which make gets called again with -f .

Is it possible to force qmake to add options to make when generating the makefile? Or maybe there's another way of setting the option outside of qmake altogether? I can't edit that specific Makefile since it's autogenerated each build.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ぽ尐不点ル 2024-08-06 09:49:45

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

set MAKEFLAGS=-j4
make

Abusing $MAKE to pass options does not work in all cases. Oftentimes, (e.g. in the configure script of Qt on Unix), it's enclosed in double quotes ("$MAKE") to allow the command to contain spaces. I know because I used the same trick before it stopped working. Qt Support then suggested (rightfully) to use $MAKEFLAGS as in

set MAKEFLAGS=-j4
make
述情 2024-08-06 09:49:45

这对我有用:

set MAKE_COMMAND=mingw32-make -j%NUMBER_OF_PROCESSORS%

This works for me:

set MAKE_COMMAND=mingw32-make -j%NUMBER_OF_PROCESSORS%

青朷 2024-08-06 09:49:45

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

  qmake
  make MAKE="mingw32-make -j4"

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

The generic Makefile uses $(MAKE) when invoking make, so you can overwrite it using environment variables. Something like this should do it:

  qmake
  make MAKE="mingw32-make -j4"

Replace the values of MAKE as required of course :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文