qt下的跨目录多工程编译

翻译 2012年03月23日 02:07:54

这里要编译的工程包含一个库和一个可执行文件。可执行文件依赖于库,所以要先编译库,编译后库放在lib目录里面,可执行文件放在bin目录里面。

目录结构如下:

.
├── app
│   ├── app.pro
│   ├── appwindow.cpp
│   ├── appwindow.h
│   └── main.cpp
├── bin
├── complex.pro
├── include
│   └── base.h
├── lib
└── src
    ├── base.cpp
    └── src.pro

全局的工程文件complex.pro在工程根目录下,内容如下:

TEMPLATE = subdirs
SUBDIRS = src app
CONFIG += ordered

subdirs模板表示要编译多个子目录中的工程。CONFIG选项要求各个子工程按顺序编译,子目录的编译顺序在SUBDIRS中指明。

库的工程文件在src目录中,名为src.pro, 内容如下:

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,内容如下:

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

相关文章推荐

【五子棋AI循序渐进】发布一个完整的有一定棋力的版本(含源码)

本博文来自于:http://www.cnblogs.com/zcsor/archive/2012/12/25/2832820.html       经过这半年左右的学习和探索,现在对五子棋A...

Qt之pro配置多个子工程/子模块

简述进行Qt项目开发的时候,尤其是大型项目,经常涉及多工程、多模块问题,下面我们来详细讲解如何去配置管理多工程、多模块。简述 配置 效果 多工程 多模块 更多参考配置效果多工程如果需要管理多工程(pr...

Qt之pro配置详解

简述使用Qt的时候,我们经常会对pro进行一系列繁琐的配置,为方便大家理解、查找,现将常用的配置进行整理。简述 配置 注释 CONFIG DEFINES DEPENDPATH DESTDIR FORM...

Qt 建立带有子项目的工程

刚需,软件需要用到多个子项目 第一步 打开Qt新建子项目工程 如图 在此时鼠标右键,选着新建子项目如图 就是正常的新建项目的步骤,直接...

QT 多目录多工程 配置

Qt 多工程多目录 手把手建工程实例

QT工程pro文件TEMPLATE变量说明

QT工程pro文件模板变量(TEMPLATE) 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择: app - 建立一个应用程序的makefile。这是默认值...

Qt多工程多目录的编译案例

本案例以1个App+1个共享库为例: 1、在D盘创建空文件夹qMulti   2、使用Qt Creator创建App应用程序:BigWay。注意:创建模板是App,存放路径是D:\qMult...

qmake、pro文件、pri文件和makefile文件的功能及它们之间的关系

Pro文件跟Pri文件的功能及关系 提到Pro文件和Pri文件,要先提到qmake工具。 在进行Qt开发时,qmake工具是与Qt一起提供的,用来编译Qt本身,并生成Qt自带的工具和例子。 在开发...

利用qmake生成Makefile文件

虽说qt已经被诺基亚放弃,但是qt项目还是在进行,5.0已经出来了。 在linux下写程序,免不了要写Makefile文件,用automake,总感觉比较麻烦,linux人喜欢做麻烦的事,以显得风格...

Qt在pro中管理多个子项目(子工程)

将TEMPLATE设置为subdirs即可,如下图所示:
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)