简述

在 Qt 中经常会用到第三方库,例如:FFmpeg、OpenCV 等。第三方库的使用比较简单,只需要一些基本的配置就可以搞定,一起来看看吧!

第三方库

假设你需要依赖一个跨平台的库 - MyLibrary,并且有几个文件作为库的一部分。我们的项目 MyQtApp 将这些文件存储在名为 3rdparty 的文件夹中:

  • MyQtApp/

    • MyQtApp.pro
    • src/ 
      • main.cpp
    • 3rdparty/ 
      • MyLibrary

        • include/

          • MyLibrary.h
        • lib/ 
          • libMyLibrary.so
          • MyLibrary.lib
        • bin/ 
          • MyLibrary.dll

要在 MyQtApp 中使用 MyLibrary 库,qmake 需要 MyLibrary 库的位置和名称。你也可以选择:

  • 提供 MyLibrary 源代码的位置,以便在将它们包含在自己的代码中时,不必输入每个文件的完整路径。
  • 选择 MyQtApp 可执行文件将被创建的目标目录。

上面的信息在 .pro 文件中提供,以便 qmake 可以解析它并生成 makefiles。Makefiles 包含编译器和链接器生成输出所需的所有信息,无论它是可执行文件,另一个库文件等。

源代码

使用 INCLUDEPATH 变量提供 MyLibrary 的 include 目录路径:

INCLUDEPATH += 3rdparty/MyLibrary/include

然后,就可以这样使用:

#include <MyLibrary.h>

而不是:

#include <3rdparty/MyLibrary/include/MyLibrary.h>

库文件

要让 qmake 知道在哪里可以找到 MyLibrary 库文件,使用 LIBS 变量:

LIBS += -L"3rdparty/MyLibrary/lib" -lMyLibrary

表达式的第一部分(-L...):使链接器知道应该在哪个目录中查找库文件。双引号只在路径包含空格时才需要,因此此处可以省略。

表达式的第二部分(-l...):告诉链接器链接哪些库。对于 Windows 和 UNIX 平台,有两个不同的库文件:MyLibrary.lib 和 libMyLibrary.so,没有必要指定 .lib 扩展名,也不必指定 lib 前缀(在 UNIX 平台上)。

目标目录

默认情况下,qmake 在与 .pro 文件相同的目录中创建可执行文件,可以使用 DESTDIR 变量来选择自己的目录:

DESTDIR = bin

就这么简单,现在可以在项目中使用 MyLibrary 库了。最终的 .pro 文件如下所示:

TARGET = MyQtApp

TEMPLATE = app

INCLUDEPATH += 3rdparty/MyLibrary/include

LIBS += -L"3rdparty/MyLibrary/lib" -lMyLibrary

SOURCES += src/main.cpp

无论使用什么库,配置基本都大同小异,Good Luck!

LIBS+=....最好还是使用$$PWD方式,如下:
LIBS += -L$$PWD/MyLibrary/lib/ -lMyLibrary
这样会被展开成为绝对路径方式,肯定能指定好正确的路径。
博主可能用的是QT for MSVC版本的,for MinGW版本按照介绍的方法找不到。

http://blog.csdn.net/liang19890820/article/details/52933198

Qt使用第三方库3rdparty的更多相关文章

  1. 基于Qt的第三方库和控件

    ====================== 基于Qt的第三方库和控件 ======================     libQxt --------   http://dev.libqxt.o ...

  2. Qt使用第三方库

    简述 在 Qt 中经常会用到第三方库,例如:FFmpeg.OpenCV 等.第三方库的使用比较简单,只需要一些基本的配置就可以搞定,一起来看看吧! 简述 第三方库 源代码 库文件 目标目录 第三方库 ...

  3. 基于QT开发的第三方库

    基于Qt开发的第三方库 分类: Qt2014-02-12 11:34 1738人阅读 评论(0) 收藏 举报 QT第三方库   目录(?)[+]   文章来源:http://blog.csdn.net ...

  4. Qt编程可不可以结合其他的第三方库和本土API?(有zeroMQ的Qt封装,还可轻易使用Python的库)

    作者:渡世白玉链接:http://www.zhihu.com/question/29030777/answer/59378712来源:知乎著作权归作者所有,转载请联系作者获得授权. 可以,十分可以,你 ...

  5. Qt第三方库----QCustomPlot

    一.软件下载 下载地址:http://www.qcustomplot.com/index.php/download 这里推荐下载第一个链接的内容: 注:这里的第三方库要放在非中文目录下. 二.配置 ( ...

  6. Qt笔记——连接第三方库&用libZPlay库获取音频文件的艺术家、专辑等信息

    连接第三方库libZPlay 概述 需要.a/.lib ,.h , .dll 三个文件 官网下载 http://libzplay.sourceforge.net/ import .h 链接 .a 放入 ...

  7. qt .pro文件和cmakelists.txt配置第三方库

    .pro文件引用第三方库文件和头文件路径 1.库文件(LIBS添加的是共享库文件,-L添加目录,-l指定共享库名称) LIBS += -L/usr/local/lib -lmath LIBS的使用就是 ...

  8. Qt-导入第三方库

    Qt提供了显式和隐式导入第三方库方法,本文只介绍显示导入方法. 第三方提供的库文件包括ControlCAN.h,ControlCAN.dll和ControlCAN.lib.将ControlCAN.h和 ...

  9. Python标准库与第三方库详解(转载)

    转载地址: http://www.codeweblog.com/python%e6%a0%87%e5%87%86%e5%ba%93%e4%b8%8e%e7%ac%ac%e4%b8%89%e6%96%b ...

随机推荐

  1. Curator简介

    Curator简介 Curator是一个博物馆或者其它集合的监管者或者管理者,Curator有以下几个组件组成: Recipes: 实现了通用ZooKeeper的recipes, 该组件是在Frame ...

  2. hadoop 3.x 回收站

    使用回收站最主要是为了给误删文件的你留条后路 打开core-site.xml添加以下配置 <!--回收站保存文件时间--> <property> <name>fs. ...

  3. Atititjs javascript异常处理机制java异常转换.js exception process

    Atititjs javascript异常处理机制java异常的转换.js exception process 1. javascript异常处理机制 Throw str Not throw erro ...

  4. SQL基础问题整理

    在程序中,数据库操作是必不可少的部分,所以我们要备足数据库相关知识才能去应付程序中出现的种种问题.基于此,我特地在国外网站.博客上整理了一些问题,并附带了答案和解释.参考.为了保证“原汁原味”,我就保 ...

  5. 超级简单的9patch

    转载请声明出处:http://blog.csdn.net/dawanganban 我们在有些应用中会用到将图片内部指定区域撑大的效果,如微信中的消息内容背景,这时候就要用到9patch图片,效果如下: ...

  6. 自定义滚动条样式 -webkit-scrollbar

    demo .page-one-content-area-inner-select-wrap height 200px margin-bottom 30px overflow auto &::- ...

  7. 4 DDD里面的界限上下文

    1 界限上下文概念的出现 当开发一个电子商务系统的时候,会给系统划分很多子域,销售子域是核心子域,此外还有物流子域,商品子域等支撑子域.在这些子域里面,一个商品product在销售子域和商品子域里面外 ...

  8. 解析Android的 消息传递机制Handler

    1. 什么是Handler: Handler 网络释义"机械手.经理"意思,在Android它用于管理多个线程UI操作: 2. 为什么会出现Handler: 在Android里面的 ...

  9. Python 爬虫 —— BeautifulSoup

    from bs4 import BeautifulSoup % 首字母大写,显然这是一个类 1. BeautifulSoup 类 HTML 解析类(parser) r = requests.get(. ...

  10. 统计web訪问前10的ip

    cat access.log|awk '{print $0}'|sort|uniq -c|sort -nr|head -n 10