2017-06-16 179 views
0

我正在为使用QtCreator的Android构建一个巨大的C++/Qt项目。我有脚本生成.pro文件,我想在.pro文件中指定我希望构建多线程。如何在我的QtCreator的.pro项目文件中设置-j mingw选项

我知道我可以去项目选项,并添加-j%NUMBER_OF_PROCESSORS%选项,以使: enter image description here

不过,我想有这个选项设置为我们所有的项目,并为每developper,我想有这个选项可以从.pro文件中设置。

我想:

  • QMAKE_CXXFLAGS += -j%NUMBER_OF_PROCESSORS%,但是这台为arm-linux的-androideabi-G ++,得到控制而应该设置为MINGW32-的make.exe
  • $$(MAKEFLAGS) = -j%NUMBER_OF_PROCESSORS%,没有成功的选择...不知道这是从.pro文件设置和环境变量的正确语法...甚至不知道这是可行的。
  • $$(MAKE_COMMAND) = mingw32-make -j%NUMBER_OF_PROCESSORS%,没有成功

有谁知道如何设置从.pro文件这个选项?

回答

0

其实他最好是推荐每个想加速编译的开发者设置MAKEFLAGS环境变量。它可以决定将其设置为-j2-j4-j%NUMBER_OF_PROCESSORS%(如果想要快速编译,即使它超载计算机)。

然后这个被make使用,并且适用于每个用QtCreator编译的项目。使用这个选项的事实在QtCreator中(在选项页面和日志中)是绝对不可见的,但是,您可以在Windows任务管理器中看到多个g ++实例并行运行。

0

有一个简单的理由,它不属于项目文件是没有办法的。如果你的团队中的开发人员不想使用他的所有核心,因为他正在做其他事情,并且他想同时更多地使用CPU果汁?如果有人拥有比您选择的数量少2个核心的内容?如果某人拥有比您选择的数量多的内核,该怎么办?

总之:不要。如果你想要最佳的cpu核心使用率,可以使用类似Ninja这样的功能,而不需要特定的编号。

注:忍者不会与qmake一起工作。尽可能尝试CMake。尽管脚本语言很糟糕,但它提供了很多可能性和灵活性。

+0

-j%NUMBER_OF_PROCESSORS%将获取好数量的线程....但是,当你说用户可能不想超载他的机器时,你是正确的... – jpo38

+0

是否真的没有办法通过设置.pro文件中的环境变量? – jpo38

+0

@ jpo38 qmake运行的环境与make运行的环境不同,因此不能,set环境变量将无法生存。 Qt Creator有一个“Build Environment”设置来设置它。另一种方法是使用组策略并为每个用户设置“MAKEFLAGS”。事情是,这不是构建系统的工作(嗯,迄今为止,工作数量已经确定)。正如我所描述的,更多现代化的工具能够以正确的方式做到这一点,并完全消除您存在的问题。 – rubenvb

0

项目的构建和运行设置保存在.pro.user文件AFAIK中。您可以使用脚本修改.pro.user,找到如下所示的一行:</< value =“QString”值>“(根据版本和平台可能略有不同),并将 [空或某些其他生成自变量]的位置更改为-j%NUMBER_OF_PROCESSORS%。 但是,您需要为每个特定用户保留.pro.user文件中的大部分其他设置,这意味着您需要在每个主机上运行脚本,并且在任何用户更改Qt中的参数创建者的构建设置。请注意,我并不是说手动修改.pro.user是一个好主意,但它是一种做你想做的事情的方式。

+0

Problm是.pro.user只在用户打开我生成的.pro文件后才创建....所以我的脚本需要运行两次... – jpo38

相关问题