确定 Qt 库链接

Determine Qt libraries linkage

我正在尝试猜测项目 (.pro) 文件中 Qt 的库链接。我正在使用各种 Qt 框架目录:32 位和 64 位 Windows、Linux 和 Android 构建;使用静态和共享的 Qt 库。我已经尝试了几种方法来检查 Qt 的链接,但到目前为止没有任何效果。

尝试 1:

qtConfig(static): message("Qt statically linked")

尝试 2:

CONFIG(static, static|shared): message("Qt statically linked")

尝试 3:

static: message("Qt statically linked")

我猜想所有以前的测试都会带来相同的结果,因此在选定的QT构建是静态的结果时显示"message" m 覆盖项目树中的 *CONFIG 个变量。我已经检查了很多次了,我还没有发现任何问题。

没有 "static" 这样的 Qt 配置功能。所以正确的是

!qtConfig(shared): message("Qt statically linked")

作为替代方案,您可以这样做

!contains(QT.global.enabled_features, shared): message("Qt statically linked")

但是这个记录更少,所以你最好坚持使用 qtConfig(),它基本上测试相同的东西。

没有。 2 是对用户项目本身的构建配置的测试,即如果您正在构建静态或共享库 您自己的.

没有。 3 是 错误的 做第 2 的方法,因为用户的 CONFIG 允许包含 both shared/static, debug/release 等等。只有最后一个很重要。