将 Qt 私有标头添加到 CMake 项目

xav*_*i-b 8 qt cmake

我应该如何将 Qt 私有标头添加到我的 CMakeLists.txt 中?

find_package(QT NAMES Qt6 Qt5 COMPONENTS Core Quick QuickPrivate REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Quick QuickPrivate REQUIRED)
Run Code Online (Sandbox Code Playgroud)

eyl*_*esc 5

如果您想使用“QTMOD”子模块的私有 API,则必须仅包含使用变量的标头:

Qt${QT_VERSION_MAJOR}QTMOD_INCLUDE_DIRS
Run Code Online (Sandbox Code Playgroud)

在你的情况下:

include_directories(${Qt${QT_VERSION_MAJOR}Quick_PRIVATE_INCLUDE_DIRS})
Run Code Online (Sandbox Code Playgroud)

注:不存在QuickPrivate


koz*_*mon 5

之前接受的答案截至最近无效。Qt6 有一个特殊的 CMake 目标用于启用私有标头。您只需要链接到它,即是 的私有标头的WidgetsPrivate目标名称:Qt Widgets Module

target_link_libraries(untitled PRIVATE Qt${QT_VERSION_MAJOR}::WidgetsPrivate)
Run Code Online (Sandbox Code Playgroud)