首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Qt图表- QT6 | Cmake

无法使用Qt图表- QT6 | Cmake
EN

Stack Overflow用户
提问于 2021-11-15 15:46:02
回答 1查看 182关注 0票数 0

我正在使用Qt 6.2.1和cmake,但我找不到使用Qt图表的方法。

Qt图表安装在"C:\Qt\6.2.1\Src\qtcharts“下

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

代码语言:javascript
复制
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()

我得到了这个错误:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-11-16 18:54:30

解决方案(感谢@vre):

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

Qt Online Installer

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69977111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档