现在的位置: 首页 > 综合 > 正文

警惕 CONFIG+=ordered

2013年11月07日 ⁄ 综合 ⁄ 共 781字 ⁄ 字号 评论关闭

致qmake的用户:公共服务公告。如果您使用CONFIG + =ordered,请立刻停止。如果你不这样做,我会追杀你。我答应上帝,我会。

我们根本没有理由使用这个,永远都不会。有两方面的原因,会让它出现在项目文件中:
1. 你不知道你在做什么,你从别的地方复制
2. 你有一个目标,需要建立另一个目标后才可以构建


如果你属于第一类,那么我希望你现在改变,因为通过使用CONFIG + =ordered,你完美的禁用了多核构建你的代码。

如果你属于第2类,那么你就错了。你应该指定正确这样你的目标之间的依赖关系:

TEMPLATE = subdirs
SUBDIRS = src plugins tests docs
plugins.depends = src
tests.depends = src plugins

然后你就会有内置文档构建工具时感觉就像是,其余建成时,他们的依赖建立。

如果你有参与的子目录下,那么你需要额外级别的间接在您的项目,但它仍然不是最好的:

TEMPLATE = subdirs
src_lib.subdir = src/lib
src_lib.target = sub-src-lib

src_plugins.subdir = src/plugins
src_plugins.target = sub-plugins
src_plugins.depends = sub-src-lib

SUBDIRS = src_lib src_plugins

对于那些你想知道为什么我这听起来很沮丧,我已经解决了这么多的实例,现在,它只是变得老了,累了,坦率地说。我仍然保持运行到更多。这是无数分钟浪费的构建时间,都是因为懒惰的一行代码。请修复它。

附上一个简单的例子:https://github.com/rburchell/libresourceqt/commit/4c86922741eee367c194873852de53b44d59754b

抱歉!评论已关闭.