######################################## 杂项 ######################################## CMake **************************************** 判断指定包是否发现: .. code-block:: cmake find_package(Qt6 COMPONENTS Widgets) if(NOT Qt6Widgets_FOUND) endif() Qt5 和 Qt6 的 CMake 兼容 **************************************** .. admonition:: 整理自 - `Qt 5 and Qt 6 compatibility | Build with CMake 6.2.3 `_ 自 Qt 5.15 后,Qt 支持无版本的 targets: .. code-block:: cmake 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 后受支持。但是对于之前的,另一个方式是: .. code-block:: cmake 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 变量