使用第三方库
qmake 允许您在 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© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.