You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CMake中使用Qwt 6.3.0及编译版本正确性疑问

在CMake中正确查找Qwt 6.3.0的方法及Qt版本适配建议

先解决Qt版本冲突问题

你用Qt5的qmake编译Qwt 6.3.0,生成的库依赖Qt5,但项目使用Qt6.7.0,两者ABI不兼容,必然会导致链接或运行时错误。必须用Qt6的构建工具重新编译Qwt:

  • 调用Qt6的qmake(路径通常为/usr/lib/qt6/bin/qmake)重新构建:
    cd qwt-6.3.0源码目录
    /usr/lib/qt6/bin/qmake
    make -j$(nproc)
    sudo make install
    
  • 重新安装后,Qwt库会适配Qt6,避免版本冲突。

CMake查找Qwt的两种正确方法

方法1:使用find_package(推荐)

Qwt 6.3.0安装完成后,会在/usr/local/qwt-6.3.0/lib/cmake/Qwt/目录下生成QwtConfig.cmake配置文件。CMake需要定位到该文件才能正常使用find_package:

# 指定Qwt的CMake配置文件路径
set(QWT_DIR "/usr/local/qwt-6.3.0/lib/cmake/Qwt")

# 查找Qwt库
find_package(Qwt REQUIRED)

# 将Qwt链接到你的项目目标
target_link_libraries(你的项目名称 PRIVATE Qwt::Qwt)
  • Qwt::Qwt是Qwt导出的CMake目标,已经包含了头文件路径和库链接信息,无需再手动添加include_directories。

方法2:手动指定路径(当find_package失效时)

如果Qwt未生成正确的CMake配置文件,可以手动指定头文件和库路径:

# 添加Qwt头文件目录
target_include_directories(你的项目名称 PRIVATE /usr/local/qwt-6.3.0/include)

# 查找Qwt库文件(根据实际库名调整,比如Qt6编译的库可能是libqwt.so或libqwt6.so)
find_library(QWT_LIBRARY NAMES qwt PATHS /usr/local/qwt-6.3.0/lib NO_DEFAULT_PATH)

# 链接Qwt库到项目
target_link_libraries(你的项目名称 PRIVATE ${QWT_LIBRARY})

额外提示

在KDevelop中,确保项目的CMake构建环境指向Qt6:可以在项目配置中设置CMAKE_PREFIX_PATH为Qt6的安装目录(比如/usr/lib/qt6),避免CMake误选Qt5环境。

内容的提问来源于stack exchange,提问作者Loke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:31:01