QTP0003

在创建 Qt 库时考虑 BUILD_SHARED_LIBS 值。

此策略自 Qt 6.7 以来被引入。该策略影响使用 Qt CMake API(如 qt_add_libraryqt_add_pluginqt_add_qml_module)创建的库的默认类型。

如果策略设置为 OLD,则选择的默认库类型与 Qt 构建设置对齐,即 sharedstatic

如果策略设置为 NEW,如果设置了 BUILD_SHARED_LIBS 值,则根据该值选择库类型。如果没有设置 BUILD_SHARED_LIBS,则默认库类型回退到 Qt 构建设置。

例如,以下代码将使用 Qt 构建设置作为 MyLib 目标的默认库类型,尽管 BUILD_SHARED_LIBS 设置为 ON

set(BUILD_SHARED_LIBS ON)
...
qt6_add_library(MyLib sourcefile.h sourcefile.cpp)

在调用 qt_add_library 之前将 QTP0003 设置为 NEW,则 BUILD_SHARED_LIBS 将影响库默认类型,并且 MyLib 将是共享库。

set(BUILD_SHARED_LIBS ON)
...
qt_policy(SET QTP0003 NEW)
qt6_add_library(MyLib sourcefile.h sourcefile.cpp)

另请参阅 qt_policyQt CMake 策略qt_add_library

© 2024 Qt 公司有限公司。此处包含的文档贡献归相关所有者所有。提供的文档受 GNU 自由文档许可证版本 1.3 的条款约束,由自由软件基金会发布。Qt 及相关标志是芬兰的 Qt 公司有限公司和其他国家/地区的商标。所有其他商标归其所有者所有。