杂项

CMake

判断指定包是否发现:

find_package(Qt6 COMPONENTS Widgets)
if(NOT Qt6Widgets_FOUND)
endif()

Qt5 和 Qt6 的 CMake 兼容

整理自

自 Qt 5.15 后,Qt 支持无版本的 targets:

find_package(Qt6 COMPONENTS Widgets)
if (NOT Qt6_FOUND)
    find_package(Qt5 5.15 REQUIRED COMPONENTS Core)

add_executable(helloworld
    ...
)

target_link_libraries(helloworld PRIVATE Qt::Core)

上述代码自 Qt 5.15 后受支持。但是对于之前的,另一个方式是:

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)

add_executable(helloworld
    ...
)

target_link_libraries(helloworld PRIVATE Qt${QT_VERSION_MAJOR}::Core)

上面的代码首先尝试查找 Qt6,失败则查找 Qt5,成功后会设置 QT_VERSION_MAJOR 变量

Last moify: 2022-12-04 15:11:33
Build time:2025-07-18 09:41:42
Powered By asphinx