CMake文件无法找到Qt图表模块。

4

我正在尝试在JetBrains的Clion中开始编写我的Qt项目,但首先需要在我的Cmake文件中链接一些库。当尝试查找像Qt5Core、Qt5Widgets、Qt5Gui这样的包时没有问题,但是当尝试查找Qt5Charts时会抛出错误:

By not providing "FindQt5Charts.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Qt5Charts", but CMake did not find one.

Could not find a package configuration file provided by "Qt5Charts" with any of the following names:

Qt5ChartsConfig.cmake
qt5charts-config.cmake

Add the installation prefix of "Qt5Charts" to CMAKE_PREFIX_PATH or set "Qt5Charts_DIR" to a directory containing one of the above files. If "Qt5Charts" provides a separate development package or SDK, be sure it has been installed.

这是我的CMake文件。

所有的软件包都是通过Qt的Linux(Ubuntu)维护工具安装的。 有什么想法可以帮助CMake找到Charts模块吗?


一些Qt 5.x版本在包含QtCharts时存在问题,解决的关键字之一是QT_CHARTS_USE_NAMESPACE... - Vladimir Bershov
@Vladimir Bershov 您在哪里输入这些关键字?在Cmake中吗? - user7973129
你是否在你的.pro文件中添加了QT += charts - Vladimir Bershov
@VladimirBershov 是的,我做了。 - user7973129
3个回答

4

1
通常情况下,当我在项目中使用Qt5时,我会使用以下基本CMake脚本,但需要注意的是我没有在Linux上测试过。
cmake_minimum_required(VERSION 3.10.0 FATAL_ERROR)
project(<YOUR_PROJECT_NAME>)

find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Charts)

# set your project sources and headers
set(project_sources src/blah.cpp)
set(project_headers include/headers/blah.h)

# wrap your qt based classes with qmoc
qt5_wrap_cpp(project_source_moc ${project_headers})

# add your build target
add_executable(${PROJECT_NAME} ${project_sources} ${project_headers} ${project_source_moc})

# link to Qt5
target_link_libraries(${PROJECT_NAME}
    PUBLIC
    Qt5::Core
    Qt5::Gui
    Qt5::Widgets
    Qt5::Charts)

# require C++ 14
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14)

配置您的项目时,只需通过cmake传递您的qt5安装目录的路径(cmake变量名为Qt5_DIR),该目录包含Qt5Config.cmake文件,然后cmake应该能够找到您请求的其余组件。

还要仔细检查是否安装了Qt5Charts,不确定它是否默认安装。


出现了相同的 CMake 错误: 通过未在 CMAKE_MODULE_PATH 中提供“FindQt5Charts.cmake”,该项目要求 CMake 查找由“Qt5Charts”提供的软件包配置文件,但 CMake 没有找到。无法找到由“Qt5Charts”提供的任何以下名称的软件包配置文件:Qt5ChartsConfig.cmake qt5charts-config.cmake将“Qt5Charts”的安装前缀添加到 CMAKE_PREFIX_PATH 或将“Qt5Charts_DIR”设置为包含上述文件之一的目录。如果“Qt5Charts”提供单独的开发包或 SDK... - user7973129
是的,我已经从他们的“维护工具”中安装了所有内容。其中包括QtCharts。 - user7973129
@StoyanLupov Widgets,Core 和 Gui 自动找到了吗? - Developer Paul
是的,它们是。使用find_package找到它们没有问题。 - user7973129
让我们在聊天中继续这个讨论 - Developer Paul
显示剩余2条评论

0

也许试试这个?

sudo apt install libqt5charts5-dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接