|
20Qter豆
本帖最后由 funny265 于 2018-4-13 16:52 编辑
刚刚学习QT没有多久,因开发需要想将手头的一个项目改为QT开发,因项目涉及功能较多,所以想将项目拆分成多个子项目进行开发,于是将项目分成如下结构:
project ------- 总项目(subdirs)
ui ------- 界面(Qt Widgets Application 子项目)
main ------- 主界面(pri 项目)
login ------- 登录界面(pri 项目)等
lib -------- 功能 (subdirs 子项目)
common ------- 通用模块 (pro 子项目 - 动态库)
util ------- 工具模块(pro 子项目 - 动态库)等
bin ------- 输出目录(项目编译后文件输出目录)
debug ------- debug版目录
release ------- release版目录
使用的开发环境是QT 5.9.2 MSVC 2015 32bit
现遇到的问题如下:
1. pro文件命令的详细说明
官方有些命令也是一句话带过,对于我这种刚刚接触QT和qmake的人完全一头雾水。网上能找到的说明也都是一些最常用基本的说明,对于一些例如QMAKE_POST_LINK、target.path、DEPENDPATH的用法说明基本都是一句话带过,想问哪里可以找到一个相对比较完整详细介绍qmake用法的文章或者文档,对于我这种QT新手能够更好的理解和掌握的资料,比如一些常量的说明$$PWD表示当前项目所在路径等。
2.使用隐式调用第三方库问题
网上找到的隐式调用第三方库只能在项目所在目录也就是.pro所在的目录调用,而我希望能够在.exe所在目录调用所以将:INCLUDEPATH += $$PWD/tp/include/Vt_eng
LIBS += $$PWD/tp/lib/Vt_eng/vt_eng.lib
修改为:
INCLUDEPATH += -Ltp/include/Vt_eng
LIBS += -Ltp/lib/Vt_eng/ -lvt_eng
include中存放的是vt_eng的.h头文件lib中存放的是vt_eng的lib和dll文件
目前的问题是在单独的Qt Widgets Application项目中将文件拷贝到release下的.exe所在目录,使用QT Creator运行没有问题,但直接点击.exe会提示找不到相应.dll。而将文件拷贝到实际开发项目的也就是上面结构的bin/debug目录后,在QT Creator下编译提示找不到.h头文件。
3.lib功能代码如何编译后提供给界面项目隐式调用
因为想使用隐式调用,但对于如何在编译时将.h头文件编译到项目输出目录完全没有头绪,总不能每次编译好以后都将.h头文件拷贝到相应的文件夹里吧?那样的话子项目的意义何在?网上找了一堆关于多子项目开发的帖子和文章,一部分是使用的QT 4.x版本,跟我使用的版本有区别;另一部分是几句话带过,对于pro文件中的编译命令的用法没有详细的说明。这里想知道如何设置.pro文件才能将自己创建的动态库项目自动编译到可运行的目录中去,比如Debug和Release目录的设置。
刚刚接触QT所以问题较多,网上的大部分教程都是在说明项目如何搭建以及单独控件如何使用,不知道有没有对于实际大型复杂项目开发的案例教程之类的,有的话希望大神能给推荐一二。
|
|