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

Yocto构建Qt6应用时无法找到Qt6LinguistTools组件

解决Yocto构建Qt6应用时找不到Qt6LinguistTools的问题

问题分析

报错核心是CMake在目标sysroot中找不到Qt6LinguistToolsConfig.cmake,这是因为Qt6的LinguistTools模块属于构建主机(host)端依赖,而非目标板(target)依赖。仅添加qttools到Yocto配方的DEPENDS无法满足构建时对host端工具和cmake配置的需求。

修复步骤

1. 修正Yocto配方的依赖项

在你的应用配方(如myappqt.bb)中,同时添加qttools-native和qttools到DEPENDS:

DEPENDS += "qt6base qttools qttools-native qt6virtualkeyboard"
  • qttools-native:提供构建主机所需的LinguistTools cmake配置文件、lupdate/lrelease等工具
  • qttools:提供目标板运行时可能需要的翻译相关组件(如果你的应用需要在目标板处理翻译)

2. 优化CMakeLists.txt配置

Qt6::LinguistTools是构建时工具模块,不需要链接到目标二进制,因此可以从target_link_libraries中移除:

find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Network VirtualKeyboard Concurrent LinguistTools)

target_link_libraries(app${PROJECT_NAME}
    PRIVATE
    Qt6::Quick
    Qt6::VirtualKeyboard
    Qt6::Concurrent
    # 移除Qt6::LinguistTools,它不是运行时依赖
)

保留find_package中的LinguistTools即可,CMake会自动加载对应的构建规则(如处理.ts文件生成.qm)。

3. 清理并重新构建

执行以下命令清理之前的构建缓存,确保新依赖生效:

bitbake myappqt -c cleanall
bitbake myappqt

验证

构建完成后,检查recipe-sysroot-native/usr/lib/cmake/Qt6LinguistTools目录是否存在,该目录下应包含Qt6LinguistToolsConfig.cmake等配置文件,CMake会在交叉编译时自动从host sysroot中查找这些文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:20:00