第三方库
使用第三方库与 Qt 的过程简单。假设你了解一个支持跨平台且能接收猫的叫声样本并将其转化为英文单词的库。这个库名为 CatWhisperer
,并提供了其库的一部分文件。你的项目 MyQtApp
将这些文件存储在一个名为 3rdparty
的文件夹中。
- MyQtApp/
- MyQtApp.pro
- src/
- main.cpp
- 3rdparty/
- CatWhisperer
- include/
- CatWhisperer.h
- lib/
- libCatWhisperer.so
- CatWhisperer.lib
- bin/
- CatWhisperer.dll
- include/
- CatWhisperer
要在 MyQtApp
中使用 CatWhisperer
库,qmake
需要知道 CatWhisperer
库的位置和名称。可选地,你也可以
- 提供
CatWhisperer
源码的位置,这样你在将它们包含到自己的代码中时无需输入每个文件的完整路径。 - 选择
MyQtApp
可执行文件将创建到的目标位置。
以上信息提供在 .pro
文件中,以便 qmake
能够解析它并生成 makefile。Makefile 包含了编译器和链接器生成输出(无论是可执行文件、其他库文件等)所需的所有信息。下文将解释 qmake
期望你使用的提供这些信息的语法。
源代码
为了能够编写
#include <CatWhisperer.h>
而不是
#include <3rdparty/CatWhisperer/include/CatWhisperer.h>
你可以通过使用 INCLUDEPATH 变量来为 CatWhisperer
include
目录提供路径
INCLUDEPATH += 3rdparty/CatWhisperer/include
库文件
为了让 qmake
知道在哪里找到 CatWhisperer
库文件,使用 LIBS 变量
LIBS += -L"3rdparty/CatWhisperer/lib" -lCatWhisperer
表达式的第一部分让链接器知道它在哪个目录中查找库文件。双引号仅在路径包含空格时才是必要的,所以在本例中我们可以省略它们。
第二部分告诉链接器链接哪些库。对于 UNIX 平台和 Windows 平台,我们分别有两个不同的库文件:libCatWhisperer.so
和 CatWhisperer.lib
。不需要指定 .lib
扩展名,也不需要指定 lib
前缀(在 UNIX 平台上)。
目标目录
默认情况下,qmake
在与 .pro
文件相同的目录中创建可执行文件。我们可以使用 DESTDIR 变量来选择自己的目录
DESTDIR = bin
这就完成了!现在你可以在项目中使用 CatWhisperer
库。最终的 .pro
文件如下
TARGET = MyQtApp TEMPLATE = app INCLUDEPATH += 3rdparty/CatWhisperer/include SOURCES += src/main.cpp LIBS += -L"3rdparty/CatWhisperer/lib" -lCatWhisperer
另请参阅qmake 手册 和 Qt Creator:向项目添加库.
© 2024 Qt公司有限公司。本文档中包含的贡献内容的所有权归相应所有者所有。提供的文档根据Free Software Foundation发布的条款,以GNU自由文档许可版本1.3进行许可。Qt及其相关标志是Qt公司在芬兰和/或其他国家的商标。所有其他商标均归其相应所有者所有。