杂项
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 变量