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

项目实用makefile

在上一篇文章“小项目实用makefile”中,已经说明了单个makefile管理层次目录的局限性。本文,主要总结一下项目中的一种实用makefile树写法,为10来个人协作的中小型项目makefile...
  • zhouyulu
  • zhouyulu
  • 2012年12月28日 23:25
  • 6740

多目录makefile的书写

由于涉及到多目录下makefile文件的编写,每个目录下makefile 文件都不相同。现在简单说下我的多目录下makefile文件的编写。我把所需要的目录都放在src里面,如图所示其中libs存放库...
  • abc19842008
  • abc19842008
  • 2007年11月19日 12:14
  • 7372

linux编译驱动之 make modules SUBDIRS

今天在编译linux kernel的时候发现make menuconfig中配置成模式的驱动模块没有加入编译之,下面命令编译内核的: make uImage 通过查看kernel的makefi...
  • qq_21792169
  • qq_21792169
  • 2015年12月19日 22:24
  • 17193

Qt项目文件详解

1.指定头文件和源文件 SOURCES  += main.cpp mainwindow.cpp  多个源文件之间可以用空格来隔开 或者SOURCES += main.cpp \ Mainwindow....
  • bladeandmaster88
  • bladeandmaster88
  • 2016年10月30日 21:24
  • 1821

QT pro工程文件的格式

http://blog.sina.com.cn/s/blog_4b2169480100slaz.html QT中PRO文件写法的详细介绍 (2011-06-05 13:53:04) 转载...
  • Chaos_hu__
  • Chaos_hu__
  • 2015年11月23日 14:15
  • 720

Qt快速深入入门(或Qt工程文件详解)

Qt快速深入入门(或Qt工程文件详解) 学习和使用Qt有一段时间了,做一些简单的回顾吧。 Qt是诺基亚公司的一款开源GUI软件框架,本身是基于C++的。运行效率非常的高,不仅可以用于手机应用程序开...
  • lyc_daniel
  • lyc_daniel
  • 2013年09月28日 11:32
  • 4152

Qt包含工程集subdirs的使用

相信大家很多和我一样,用多了微软给的便利,用人家的就十分不习惯.于是就琢磨原来用到的功能现在要整顺手来,不然可让人怎么活啊! 本篇主要介绍实践使用,并非一篇完整教程,有待读者补充.^_^     我们...
  • struggle6688
  • struggle6688
  • 2017年09月07日 10:14
  • 219

Qt学习笔记3:Qt工程的目录结构

经过前两篇的学习,已经可以使用Qt空项目模板创建自己的工程了。通过本篇的学习,整理一下如果使用Qt工程的目录结构,使项目更规范和容易管理。...
  • superhcq
  • superhcq
  • 2016年12月19日 19:28
  • 2915

Qt 目录操作

QDir类提供了访问目录结构和目录内容的功能。它一般被用来操作路径名,访问路径和文件的信息。还可以用来访问Qt的资源系统。Qt使用"/"作为统一的目录分隔符,类似于在URL中所使用的那样。...
  • Amnes1a
  • Amnes1a
  • 2017年03月21日 13:13
  • 1975

qt动态库与静态库编译、应用以及pri文件创建

一. 静态库的生成 1. 测试目录: lib 2. 源码文件名: mywindow.h, mywindow.cpp 3. 编写项目文件: mywindow.pro 注意两点: TEMPLATE...
  • stweddy
  • stweddy
  • 2014年12月23日 17:48
  • 6532
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:qt下的跨目录多工程编译
举报原因:
原因补充:

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