【发布时间】: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 项目(例如显示所有子文件夹)