为Qt 6.7.3 Qt Quick应用构建Yocto配方时遇文件查找错误
解决Yocto构建Qt6应用时CMake找不到main.cpp的问题
可能的原因及修复步骤
1. 校准配方中S变量的路径配置
Yocto配方必须正确指定源码根目录(S变量),路径错误会导致CMake无法定位项目文件:
- 确保
S指向你的Qt项目源码所在目录,例如:S = "${WORKDIR}/git" - 若源码在子目录中,需调整
S到对应路径,比如:S = "${WORKDIR}/git/my_qt_application"
2. 验证CMakeLists.txt的源文件引用
Qt Creator生成的CMakeLists.txt可能依赖本地路径,需适配Yocto构建环境:
- 检查
add_executable块是否正确引用main.cpp,避免绝对路径,确保路径相对于CMakeLists.txt所在目录有效:add_executable(${PROJECT_NAME} main.cpp qml.qrc )
3. 确认源码解压/复制后的结构一致性
如果通过SRC_URI引入源码包,需保证解压后的目录结构和本地Qt Creator项目一致:
- 检查
SRC_URI配置,例如本地tar包的引入:
确认tar包解压后,SRC_URI = "file://my_qt_app.tar.gz"main.cpp直接位于${S}目录下。
4. 完善Qt6相关继承与依赖配置
已添加inherit qt6-cmake,还需确保依赖配置完整:
- 在配方中声明必要的Qt6模块依赖:
DEPENDS += "qt6base qt6declarative qt6charts" - 确保
inherit qt6-cmake放在配方元数据(如DESCRIPTION)之后,保证构建环境正确加载Qt6的CMake配置。
5. 清理构建缓存后重新构建
Yocto的构建缓存可能引发异常,执行以下命令清理后重新构建:
bitbake -c clean mygui bitbake -c cleansstate mygui bitbake mygui
6. 检查本地源码的引入方式
若未使用SRC_URI而是直接引用本地源码,需确保FILESPATH指向正确目录,或直接设置S为本地路径(推荐用SRC_URI管理源码)。
内容的提问来源于stack exchange,提问作者JuanGomez
相关产品推荐
相关产品推荐

