• 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

  • 相关阅读:
    js中父窗口获得模态窗口的返回值
    Jquery获取控件值实例(转载)
    各种类库网址学习
    IIS启动网站时, 提示: “另一个程序正在使用此文件,进程无法访问”
    查看端口占用情况
    顽固的换行问题
    mac上共享android手机屏幕软件
    关于软键盘弹出的问题
    mac搭建android studio开发环境
    C语言位域和大小端
  • 原文地址:https://www.cnblogs.com/cute/p/2470291.html
Copyright © 2020-2023  润新知