首页 > 解决方案 > 无法使用 Qt 图表 - QT6 | 制作

问题描述

我正在使用带有 cmake 的 Qt 6.2.1,但我找不到使用 Qt Charts 的方法。

Qt Charts 安装在“C:\Qt\6.2.1\Src\qtcharts”下

在我的 cmakelists.txt 中,我将 Qt 图表包含在 find_package 和 target_link_libraries 中。这似乎适用于 qt5(在 StackOverflow 中的其他答案中找到),但不适用于 qt6。(我已经隐藏了项目源文件)

cmake_minimum_required(VERSION 3.5)

project(projectname VERSION 0.1 LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_CXX_FLAGS_DEBUG "/MDd")

find_package(QT NAMES Qt6 COMPONENTS Widgets Charts REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Xml Widgets REQUIRED)

set(PROJECT_SOURCES
        ...
)

if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_executable(projectname
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
    )
else()
    add_executable(projectname 
        ${PROJECT_SOURCES}
    )
endif()

target_link_libraries(projectname PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Xml Qt6::Charts)

if(QT_VERSION_MAJOR EQUAL 6)
    qt_finalize_executable(projectname)
endif()

我收到此错误:

C:\Qt\6.2.1\msvc2019_64\lib\cmake\Qt6Core\Qt6CoreMacros.cmake:559: error: Target "projectname" links to target "Qt6::Charts" but the target was not found.  Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? C:/Qt/6.2.1/msvc2019_64/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:523 (_qt_internal_create_executable) C:/Qt/6.2.1/msvc2019_64/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:847 (qt6_add_executable) CMakeLists.txt:78 (qt_add_executable)

标签: c++qtcmakeqtchartsqt6

解决方案


解决方案(感谢@vre):

我必须在在线安装程序中选择 6.2.1 下的 Qt Charts 而不是 Qt 下的

Qt 在线安装程序


推荐阅读