原地址:http://blog.csdn.net/fjb2080/article/details/7386292

转自:http://blog.csdn.net/high_high/article/details/7385585

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

目录结构如下:

  1. .
  2. ├── app
  3. │   ├── app.pro
  4. │   ├── appwindow.cpp
  5. │   ├── appwindow.h
  6. │   └── main.cpp
  7. ├── bin
  8. ├── complex.pro
  9. ├── include
  10. │   └── base.h
  11. ├── lib
  12. └── src
  13. ├── base.cpp
  14. └── src.pro

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

  1. TEMPLATE = subdirs
  2. SUBDIRS = src app
  3. CONFIG += ordered

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

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

  1. TARGET = base
  2. VERSION = 0.1.0
  3. CONFIG += static
  4. DESTDIR = ../lib
  5. INCLUDEPATH += ../include
  6. DEPENDPATH += . ../include
  7. SOURCES += base.cpp
  8. HEADERS += base.h

TARGET表示编译后的库名字为base,CONFIG += static表示编译后的库是静态库。DESTDIR设置编译后的库的位置。

库编译结束后就是可执行文件编译了,工程文件在app目录下的app.pro,内容如下:

  1. TEMPLATE = app
  2. TARGET = app
  3. DESTDIR = ../bin
  4. INCLUDEPATH += . ../include
  5. DEPENDPATH += .
  6. LIBS += -L../lib -lbase
  7. SOURCES += appwindow.cpp main.cpp
  8. HEADERS += appwindow.h

如果要编译多个库,多个可执行文件,或者多级目录工程,可以参照这个例子写多个pro文件,递归而已,不是什么难事。

Reference:

Johan Thelin. Foundations of Qt Development. Apress 2007

qt下的跨目录多工程编译的更多相关文章

  1. qt下的跨目录多工程编译(转)

    这里要编译的工程包含一个库和一个可执行文件.可执行文件依赖于库,所以要先编译库,编译后库放在lib目录里面,可执行文件放在bin目录里面. 目录结构如下: 全局的工程文件complex.pro在工程根 ...

  2. Qt Creator 更改默认构建目录到工程目录下

    Qt Creator 更改默认构建目录到工程目录下 步骤 工具->选项->构建和运行->概要->Default build directory->去掉第一个". ...

  3. linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  4. eclipse中多个工程编译到同一个目录下

    1.点击link source  2.选择Java(ps:Java文件目录)或者resource(ps:配置文件目录)  3.最后结果,然后使用project中的clean进行编译,就可以把两个工程编 ...

  5. Qt工程使用第三方库——Qt下使用glut库

    本人使用的环境 操作系统:windows10 Qt构建套件:qt-mingw4.8.5 + mingw4.4.0 Qt Creator版本:3.6.1   本教程配置针对工程而言,每个工程需要单独配置 ...

  6. [QT_OPENCV] qt下opencv配置以及首个opencv工程

    使用环境 : window版本 : win7 x64 QT : 5.8 32bit MinGW530 OpenCv : 3.2 opencv在qt下的环境配置: 在百度上百度了许多关于opencv环境 ...

  7. 痞子衡嵌入式:MCUXpresso IDE下添加C++源文件进SDK工程编译的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下添加C++源文件进SDK工程编译的方法. 最近有客户反映在MCUXpresso IDE下的SDK工程里添加 ...

  8. 简单Nginx下防跨站、跨目录安全设置,支持PHP 5.3.3以上版本

    Nginx下存在跨站和跨目录的问题,跨站和跨目录影响同服务器/VPS上的其他网站. PHP在5.3.3以上已经增加了HOST配置,可以起到防跨站.跨目录的问题. 如果你是PHP 5.3.3以上的版本, ...

  9. 痞子衡嵌入式:MCUXpresso IDE下添加新路径下源文件进工程编译的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下添加新路径下源文件进工程编译的方法. 接着上篇文章 <MCUXpresso IDE下SDK工程导入与 ...

随机推荐

  1. [python]通过urllib2设置代理访问网址

    #!/usr/bin/env pythonimport urllib2 # change followings before useuser = 'foo'passwd = 'bar'proxyser ...

  2. MySQL PrepareStatement基本的两种模式&客户端空间占用的源码分析

    关于预编译(PrepareStatement),对于所有的JDBC驱动程序来讲,有一个共同的功能,就是“防止SQL注入”,类似Oracle还有一种“软解析”的概念,它非常适合应用于OLTP类型的系统中 ...

  3. javascript使用消息框

    之前很多地方都用过alert,它的作用是弹出一个警告框,我们调用的方法是alert("输入的内容");其实更正确的写法是 window.alert("输入的内容" ...

  4. NAT简单介绍

    NAT本质就是让一群机器公用同一个IP.还有一个重要的用途是保护NAT内的主机不受外界攻击 NAT类型: 1.Full Cone:IPport不受限 Full Cone仅仅做单纯的地址转换,不正确进出 ...

  5. fancyBox简单入门

    1. 下载 fancyBox,解压后根据需要将文件复制到网页文件夹中(建议不要更改目录结构),并在网页源码中引入相应的 css 样式和 js 文件(如果更改了目录结构,引入的时候请调整相应代码,对应它 ...

  6. 基于visual Studio2013解决C语言竞赛题之0422牛顿迭代法

      题目

  7. 手动制作rpm包

    制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录: BUILD        ————编译相关源码包时的工作目录: RPMS         — ...

  8. c++ 重载,覆盖,重定义 2

    前一篇 http://www.cnblogs.com/iois/p/4085173.html 写有些地方不够准确,重新整理了一遍 函数重载(Function Overloading) C++允许同一范 ...

  9. [转]CentOS_yum的详细使用方法

    yum 是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理大量系统的更新问题 yum特点可以 ...

  10. django学习之Model(一)

    认认真真学Django,从现在开始. 学习资料来源于官方网站:https://docs.djangoproject.com/en/1.6/ 1-新建一个models.py from django.db ...