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

    这里要编译的工程包含一个库和一个可执行文件。可执行文件依赖于库,所以要先编译库,编译后库放在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

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

  • 相关阅读:
    VMWare ESX Server
    ubuntu 13.04 xrdp 远程桌面连接问题[转载]
    wget 使用技巧
    C# 跨线程调用问题
    ASP.NET WEB API 返回JSON 出现2个双引号问题
    ASP.NET MVC 4 中Razor 视图中JS无法调试
    Android 如何修改gen下包的名字
    打开AVD时报”Data partition already in use. Changes will not persist!”
    Android 将APK文件安装到AVD中并分析其界面结构
    Android 实现界面(Activity)的跳转
  • 原文地址:https://www.cnblogs.com/yanhuiw/p/4024663.html
Copyright © 2011-2022 走看看