【问题标题】:Is there a way to set up generator for QT Cmake project for parallel compiling?有没有办法为 QT Cmake 项目设置生成器以进行并行编译?
【发布时间】:2017-01-31 18:38:04
【问题描述】:

我正在使用 Windows 和 Qt Creator 和 CMake。

我已经能够使用 Qt 使用的默认生成器来构建我的项目:nmake Makefiles。不幸的是,构建只使用一个核心。查看生成的 makefile,它有一个名为 $MAKEFLAGS 的变量,但我不知道如何更改它。我尝试在 Qt Creator 构建设置下的 cmake 命令上添加:-DMAKEFLAGS=-j,但 CMake 不理解。

我不明白的另一个方面是我无法进入 Qt CMake 构建目录并运行相同的命令。 Qt Creator 告诉我它正在使用的命令是:

cmake.exe --build 。 --目标全部

但是当我在 cmd 窗口中执行此操作时,它似乎告诉我找不到 nmake:

C:\Projects\Git\build-AO3D-Desktop_Qt_5_7_0_MSVC2015_64bit-Default>cmake --build 。 --目标全部 该系统找不到指定的文件 CMake 错误:生成器:make 执行失败。制作命令是:“nmake”“/NOLOGO”“all”

我搜索了我的文件系统以找到 nmake,但没有找到,但不知何故 Qt Creator 可以在同一个文件夹中运行相同的构建命令。

所以总结一下:如何使用多个内核?有更好的发电机供我使用吗?为什么我不能使用 Qt 声称它在命令行上使用的构建命令来构建?

【问题讨论】:

  • 应该在QT creator安装目录下,你检查了吗?
  • nmake 不是 Qt 的一部分,而是 MSVC/visual studio 的一部分。从 VS2015 命令提示符或源 vcvarsall.bat 构建。你想要调用的是 jom.exe,它与创建者一起提供,并且是一个可以并行构建的 nmake 插件替代品。也看看忍者。
  • 谢谢 - 我一定会以切换到 jom nmake 为目标。
  • 我现在意识到我以前尝试过“nmake jom”,但在我这样做时遇到了错误。我会尝试更多,但可能会针对我看到的“nmake makefiles jom”生成器错误提出一个单独的问题。它失败并显示以下输出: Change Dir: C:/Projects/Git/build-AO3D-Desktop_Qt_5_7_0_MSVC2015_64bit-Default/CMakeFiles/CMakeTmp Run Build Command:"jom" "/NOLOGO" "cmTC_f1503\fast" Generator: execution of make failed .制作命令为:“jom”“/NOLOGO”“cmTC_f1503\fast”
  • 我能够克服我最初使用 JOM 时遇到的错误,并且它在并行构建中运行良好。我最终使用了 CodeBlocks NMake Makefiles,这是两全其美的。它允许我进行并行构建,但它也比“NMake Makefiles JOM”做得更好,因为 Qt Creator 能够解析 CMake 项目(例如显示所有子文件夹)

标签: qt makefile cmake


【解决方案1】:

NMake 根本不支持并行作业。使用 jom 和相应的 CMake 生成器。

【讨论】:

  • 我会接受这个作为答案。另一个小问题是:我的问题的 cmets 部分回答了 nmake 的位置。
猜你喜欢
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 2016-09-17
  • 1970-01-01
相关资源
最近更新 更多