打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
qt下的跨目录多工程编译
这里要编译的工程包含一个库和一个可执行文件。可执行文件依赖于库,所以要先编译库,编译后库放在lib目录里面,可执行文件放在bin目录里面。
目录结构如下:
[plain] view plaincopy
.
├── app
│   ├── app.pro
│   ├── appwindow.cpp
│   ├── appwindow.h
│   └── main.cpp
├── bin
├── complex.pro
├── include
│   └── base.h
├── lib
└── src
├── base.cpp
└── src.pro
全局的工程文件complex.pro在工程根目录下,内容如下:
[plain] view plaincopy
TEMPLATE = subdirs
SUBDIRS = src app
CONFIG += ordered
subdirs模板表示要编译多个子目录中的工程。CONFIG选项要求各个子工程按顺序编译,子目录的编译顺序在SUBDIRS中指明。
库的工程文件在src目录中,名为src.pro, 内容如下:
[plain] view plaincopy
TARGET = base
VERSION = 0.1.0
CONFIG += static
DESTDIR = ../lib
INCLUDEPATH += ../include
DEPENDPATH += . ../include
SOURCES += base.cpp
HEADERS += base.h
TARGET表示编译后的库名字为base,CONFIG += static表示编译后的库是静态库。DESTDIR设置编译后的库的位置。
库编译结束后就是可执行文件编译了,工程文件在app目录下的app.pro,内容如下:
[plain] view plaincopy
TEMPLATE = app
TARGET = app
DESTDIR = ../bin
INCLUDEPATH += . ../include
DEPENDPATH += .
LIBS += -L../lib -lbase
SOURCES += appwindow.cpp main.cpp
HEADERS += appwindow.h
如果要编译多个库,多个可执行文件,或者多级目录工程,可以参照这个例子写多个pro文件,递归而已,不是什么难事。
Reference:
Johan Thelin. Foundations of Qt Development. Apress 2007
多工程该怎么组织
多工程该如何组织
现在我有一个用 vs2008 创建的项目 solution,内含三个工程,分别为
libABC
helloworld
test
其中 libABC 工程需要编译出一个动态库,win 下是 .dll,linux 下是 .mo
helloworld 和 test 是两个可编译出 .exe 文件的工程,并且都依赖于 libABC 的动态库。
在 vs 中,我可以设置依赖关系,并且可以选择 helloworld 或者 test 作为启动项目。
问题,在 qt 中:
1.qt 是否有 vs 中工程的概念?
2.不管有没有,我该如何组织这个“工程”,使得用起来如 vs 一样方便?
------解决方案--------------------------------------------------------
1. 在QtCreator中没有类似solution功能,但可以同时打开多个工程,并可以设置缺省工程;
2.
可以同时打开libABC,helloword,test三个工程;
在helloworld和test工程中设置libABC工程动态库的输出文件,即可
------解决方案--------------------------------------------------------
在你工程的顶级目录里放置一个project.pro,内容是:
TEMPLATE = subdirs
SUBDIRS = libfoo foo
然后添加一个libfoo目录和一个foo目录,里面分别放置libfoo.pro和foo.pro文件,内容是:
# libfoo.pro
TEMPLATE = lib
# ...
# foo.pro
TEMPLATE = app
# ...
------解决方案--------------------------------------------------------
楼上的正解
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
跨平台:GN实践详解(ninja, 编译, windows/mac/android实战)
iTOP3399开发板Qt蜂鸣器和LED测试
Qt Creator不能编译示例源代码的解决方法
linux下编译工程(使用命令行、Makefile、cmake编译helloworld)
项目管理工具Maven1
ArkUI Android平台适配层【坚果派】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服