如何列出用于在 Qt 项目中包含头文件的所有路径?

How to list all paths that are used for including header files in a Qt project?

我已经将一个 C++ 项目 (Shrewsoft VPN) 导入到 Qt creator 中。

有些include语句失败,因为找不到被包含的文件 e. G。

#include <openssl/rand.h>

我知道 openssl/rand.h 文件所在的位置。但我不知道 Qt / C++ 编译器寻找它的路径。

有没有办法获取 Qt 搜索此头文件的所有路径的列表?

有两件事会影响搜索路径:构建环境和项目设置。构建环境一般是从系统继承的,项目设置在你的.pro文件中定义

在Qt Create 4.3中,可以看到
中的构建环境 项目(在左窗格中)> 构建 > 构建环境 > 详细信息 > INCLUDE

但我建议在您的项目文件中添加包含路径。在您的 .pro 文件中添加:

INCLUDEPATH += (Base Path to openssl includes)

您可能还需要扩展用于链接的库搜索路径:

LIBS += -L(Path to openssl libs) -l(openssl lib name)

Qt 以 3 种方式搜索 header 个文件,

第一个搜索路径是您的编译器路径,exp。对于 MSVC2015,它将在 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include

中搜索

第二个搜索路径是你的Qt版本文件夹和链接的Qt库,exp。使用Qt5.9.2和widgets库,会在C:\Qt.9.2\msvc2015_64\include\QtWidgets

中搜索

最后一个搜索路径是您的外部 header 路径,包含在您的 INCLUDEPATH 变量中,用 QMake 解析。

对于 windows 应用中的 openssl,您需要添加

QT += core gui network
win32{
 LIBS += -LC:/OpenSSL-Win32/lib -lubsec
 INCLUDEPATH += C:/OpenSSL-Win32/include
}

添加到您的项目文件中,并将 C:/OpenSSL-Win32/ 替换为您下载的 OpenSSL 路径。