看到了《浅谈 qmake 之 pro、pri、prf、prl文件 》
跟我的关系不大,我应该在两年之内都不会碰pro之外的东西。
-----------------------
现在总结一下如何创建将项目分解为多个子工程:
*.子工程都是以lib或者dll的形式存在的。
1.建立子工程,在创建时选择lib或dll.
2.主工程中,选择加入.lib,然后选择子工程的存放位置。向导最终会显示大约6,7行代码,把这些代码复制粘贴到你的.pro文件中即可。
3.在工作区中打开多个工程后,你需要设置这些工程之间的编译顺序,这是通过设置dependency实现的。
4.你可以将当前的工作区保存下来,启动时可以选择切换至该工作区,快速开始工作。
------------------------
最后,再说说subDirs,subDirs是除去app和lib外的另外一种TEMPLATE设置。这种工程类型是用来批量编译多个工程来用的。比如Qt的例子程序就被组织成subDirs.只要编译最顶层的examples.pro,所有子目录中的pro都会被编译。是一个批处理的概念。
------------------------
目前仍然存在的问题:
现在调试,可以直接在子工程中设置断点,就像代码位于同一个工程中一样。
不过make过程好像失效了。改动了子工程的代码后,主工程大多需要强制全编译一遍才能看到修改结果。
不知道这是不是qmake的一个bug.
我觉得如果你监视一个文件夹,改动后重新编译,那么文件夹内部所有子文件夹的改动也应该导致重新编译才对。可是现在的情况似乎不是这样。
我的模块路径设置是这样的。
lib
lib\bin
lib\module1
lib\module1\include
lib\module1\src
lib\moudle1\resource
其中src目录还会分割为子目录用来管理源代码。