8
|
Georg Schölly Crazy Developer · 技术社区 · 7 年前 |
![]() |
1
3
我使用了config++ordered、dependpath和pre_targetdeps来解决相同的问题。它在linux和msvc上对我都有效。试试看。 在project pro文件中添加:
注:你的lib应该列在第一位。像:
在你的exe.pro文件中添加正确的路径:
将找到更多选项和标志 here |
![]() |
2
6
我知道现在有点晚了,但我想给出一个更广泛的答案,为什么会发生这种情况,以及其他解决方案到底有什么帮助。
一个可行的解决方案是:您可以使用
DR:
需要这种特殊组合的原因是:
详细说明: 为了理解为什么这样做,我们需要了解qmake如何处理subdir。qmake是makefile生成器,这意味着它只创建makefile。所以所有的依赖排序都必须使用make prodives方法来完成。要了解发生了什么,首先我们必须了解make是如何工作的。 在make中,依赖关系相对简单:
意思是如果你想创造
但是,make会对文件进行优化。考虑到以下因素:
运行make将创建两个文件并打印两条消息。第二次运行它将一事无成。这里的原因是make会跟踪已经创建的文件和文件更改。自从
现在有了subdirs项目,这变得有点复杂,因为我们现在需要多个不同makefile之间的依赖关系!这通常通过递归调用来解决。对于您的示例,qmake创建以下代码(简化):
如预期的那样,此代码将创建
考虑到这些基础知识,我们现在可以重建qmake的情况。使用
然而,这还不足以真正重建
为了重建
这意味着每次
所以,这就是我们需要把这两者结合起来的原因。我们需要控制不同makefile的执行顺序,并从另一个makefile引用创建的工件——这正是这些命令的作用。 |
![]() |
Wolfspirit · 你如何确定一个时间点是否在一个时间段内? 10 月前 |
|
h-swell · QT——如何使用布局类? 1 年前 |
|
LeftFrog · Qt中macOS上的按钮颜色不变 1 年前 |
![]() |
Bobby · Qt是否与RAII设计模式不兼容? 1 年前 |
![]() |
Harvey · 如何更改Qt Creator配置项目的默认套件? 1 年前 |