加载第三方库
最后更新于:2022-04-02 02:08:40
[TOC]
## 设置
在 Qt 中经常会用到第三方库,例如:FFmpeg、OpenCV 等。第三方库的使用比较简单.
文件存储在名为 3rdparty 的文件夹中,目录
```
MyQtApp/
MyQtApp.pro
src/
main.cpp
3rdparty/
MyLibrary/
include/
MyLibrary.h
lib/
libMyLibrary.so
MyLibrary.lib
bin/
MyLibrary.dll
```
## 源代码
使用 INCLUDEPATH 变量提供 MyLibrary 的 include 目录路径:
```
INCLUDEPATH += $$PWD/3rdparty/MyLibrary/include
```
然后,就可以这样使用:
```
#include
```
而不是:
```
#include <3rdparty/MyLibrary/include/MyLibrary.h>
```
## 库文件
要让 qmake 知道在哪里可以找到 MyLibrary 库文件,使用 LIBS 变量:
```
LIBS += -L$$PWD/"3rdparty/MyLibrary/lib" -lMyLibrary
```
表达式的第一部分(-L...):使链接器知道应该在哪个目录中查找库文件。双引号只在路径包含空格时才需要,因此此处可以省略。
表达式的第二部分(-l...):告诉链接器链接哪些库。对于 Windows 和 UNIX 平台,有两个不同的库文件:MyLibrary.lib 和 libMyLibrary.so,没有必要指定 .lib 扩展名,也不必指定 lib 前缀(在 UNIX 平台上)。
## 目标目录
默认情况下,qmake 在与 .pro 文件相同的目录中创建可执行文件,可以使用 DESTDIR 变量来选择自己的目录:
```
DESTDIR = bin
```
## 完整版
```
TARGET = MyQtApp
TEMPLATE = app
INCLUDEPATH += $$PWD/3rdparty/MyLibrary/include
LIBS += -L$$PWD/"3rdparty/MyLibrary/lib" -lMyLibrary
SOURCES += src/main.cpp
```
';