【问题标题】:What is jom in qt build system ? how to call jom from command line to build qt project?qt 构建系统中的 jom 是什么?如何从命令行调用 jom 来构建 qt 项目?
【发布时间】:2019-09-12 23:28:43
【问题描述】:

尝试从命令行构建和运行一个简单的“Hello world..”Qt 应用程序,开始以下步骤并开始编译和构建.. 1.创建main.cpp文件 2. 运行 qmake -pro 创建项目文件 3.运行qmake创建make文件 (这里要么必须运行 nmake 要么 jom .. 我试过 jom ) 4. 运行 jom.exe makefile ,但没​​有任何反应..

所以这是我的问题.. 什么是 jom (和扩展?), 如何从命令行调用 jom..

我正在使用带有 Microsoft Visual C++ 编译器 11.0 的 Qt 5.1.1。

【问题讨论】:

  • 你读过这个吗:qt-project.org/wiki/jom
  • 是的,但没有关于如何调用 jom 的信息!或 jom 的扩展
  • 原帖也有链接:blog.qt.digia.com/blog/2009/03/27/…。您只需要使用 jom 而不是 nmake。 -j 选项也可用于设置并发进程数。
  • 由于 jom 是 nmake 的替代品,因此只需像对待 nmake 一样对待它。如果,OTOH,您的问题是关于如何在您的系统上查找可执行文件,它真的不属于这里 - 查看超级用户的答案(提示:Windows 具有内置文件搜索)。

标签: c++ qt build


【解决方案1】:

nmake 不像 GNU make 那样使用所有可用的处理能力。 jom 是nmake 的克隆,支持并行执行多个独立命令。它可以同时使用任意数量的进程。

例如在使用 Qt 构建的四核机器上使用它时,使用 nmake 所需时间的一半。

您也可以使用 -j 命令行参数来设置并发进程数:

C:\Qt\Qt5.1.1\Tools\QtCreator\bin\jom.exe -j 12 -f Makefile 

12 代表您要使用的核心数。我使用 12,因为我有 12 个线程。

【讨论】:

  • 我尝试执行此命令,但它给出错误“错误:文件 -j 不存在。”
  • @Prady 尝试-j %NUMBER_OF_PROCESSORS% 至少尝试每个内核编译一个线程。 jom 有时候真的很挑剔。
  • @Prady 答案中有一个错误,Nejat 纠正了,但没有告诉你。
【解决方案2】:

正如 (Nejat) 所回答的,GNU Make 在这个主题中有一些众所周知的限制,并且它没有使用所有可用的计算能力,所以我建议使用 jom。 jom 是nmake 的克隆,支持并行执行多个独立命令。它可以同时使用任意数量的进程。

要使用 Jom,您必须在项目本身中设置它,而不是在 Qt 工具选项中:

  1. 转到项目的构建设置,在构建步骤类别下有一个“制作”项。
  2. 展开详细信息,您会发现“Override mingw32-make.exe:”项。粘贴 jom 位置,例如“C:\QtSDK\QtCreator\bin\jom.exe” 在那里,突然间我正在用多个内核构建。

Steps to set up jom

所有功劳归于上面的 Nejat 答案。

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 2012-07-15
    • 2012-03-18
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多