使用第三方库

qmake 允许你在 Qt 中使用第三方库。假设你知道一个跨平台库,它能接受猫叫的音频样本并将其翻译成英语单词。该库名为CatWhisperer ,它提供了几个文件作为其库的一部分。您的项目MyQtApp 将这些文件存储在名为3rdparty 的文件夹中:

  • MyQtApp/
    • MyQtApp.pro
    • src/
      • main.cpp
    • 3rdparty/
      • CatWhisperer
        • include/
          • CatWhisperer.h
        • lib/
          • libCatWhisperer.so
          • CatWhisperer.lib
        • bin/
          • CatWhisperer.dll

要在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.soCatWhisperer.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

另请参见 Qt Creator在 qmake 项目中添加库

© 2025 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.