zoukankan      html  css  js  c++  java
  • qt下的跨目录多工程编译

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

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

    目录结构如下:

    [plain] view plaincopy

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

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

    [plain] view plaincopy

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

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

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

    [plain] view plaincopy

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

    [plain] view plaincopy

    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

  • 相关阅读:
    MySQL修改root密码的多种方法
    AES和RSA算法的demo代码
    网卡
    Socket
    Opentracing 链路追踪
    TCP连接三次握手
    MongoDB 使用B树
    MySQL的DDL、DML、DCL
    MySQL 数据同步
    SSO(单点登录)与CAS
  • 原文地址:https://www.cnblogs.com/cute/p/2470291.html
Copyright © 2011-2022 走看看