首页| 论坛| 消息

标题:QTCreator中如何建立子工程?
作者:twicave
日期:2012-12-31 16:48
内容:

试了很久。。。
我不希望用连接库的方式组织代码,那样调试起来不太方便。
希望代码的组织是有一个root工程,然后下辖很多子工程。
希望有一个step by step的说明贴。
谢谢!


#1 [roywillow 12-31 17:05]
我记得dbzhang的博客里有一篇pro、pri、prf文件的详细解释,你可以谷歌一下这几个关键字
我觉得这种组织方式应该是通过pro中的subdirs来实现
#2 [twicave 12-31 17:24]
谢谢,刚刚仔细看了一下QtCreator中关于subdirs,也就是子工程的论述。
发现那个子工程的概念与我想象中的不同。
qt creator中的子工程,基本上相当于一个文件夹,里面的文件就是各种对.lib的引用。

所以,Qt Creator中只能以lib方式组织自己的项目。

谢谢roywillow,我会查看一下你说的内容,最后会做一个摘要。
#3 [XChinux 01-01 09:56]
学会自己写.pro文件,万事就解决了。
#4 [twicave 01-06 13:21]
看到了《浅谈 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目录还会分割为子目录用来管理源代码。

回复 发表
主题 版块