Linux Qt5.15下编译Qt Speech qmlspeech示例报错求助
问题描述
我尝试编译qtspeech仓库wip/speech-recognition分支下的qmlspeech示例项目,编译过程中先后遇到三类报错:
- 从qtspeech主文件夹执行编译时,报错:
:-1: error: Project ERROR: qtspeech/examples/speech/qmlspeech/qmlspeech.pro is lacking an install target.
- 手动在
qmlspeech.pro文件中添加如下配置尝试修复:
target.path += /home/harshmittal/build INSTALLS += target
再次编译后出现新报错:
:-1: error: Project ERROR: /qtspeech/examples/speech/qmlspeech/qmlspeech.pro installs target to unexpected location.
- 尝试单独打开该示例项目编译时,报错:
:-1: error: Project ERROR: You cannot build examples inside the Qt source tree, except as part of a proper Qt build.
- 环境信息:Qt 版本 5.15,操作系统为Linux
- 参考资料:该项目效果有对应的YouTube演示视频可参考
解决方法
按以下步骤操作即可正常编译:
- 第一步:把
qmlspeech示例文件夹整个复制到Qt源码目录之外的独立路径,比如个人项目工作目录~/code/qmlspeech,不要放在qtspeech源码树的文件夹层级内,直接规避「不能在Qt源码树内编译示例」的规则校验。 - 第二步:修改项目下的
qmlspeech.pro文件:- 删掉之前手动添加的硬编码绝对路径
target.path配置 - 删掉所有指向原qtspeech源码目录的相对路径
.pri文件引用 - 补充模块依赖声明:
QT += core quick speech- 安装路径配置二选一:
- 如果需要遵循Qt默认示例安装规则,添加以下配置:
target.path = $$[QT_INSTALL_EXAMPLES]/speech/qmlspeech INSTALLS += target- 如果仅做本地编译调试、不需要安装到系统路径,添加以下配置跳过安装路径校验即可:
CONFIG += no_install_check
- 删掉之前手动添加的硬编码绝对路径
- 第三步:清理旧构建残留,删除项目目录下的
.pro.user文件、自动生成的Makefile、旧的build构建文件夹,重新执行qmake生成构建配置,再执行make命令即可完成编译。
注意:你使用的是处于开发阶段的wip/speech-recognition分支,并非正式发布版本,编译示例前必须保证已经完整编译安装了同分支的qtspeech模块到本地Qt 5.15的对应路径,否则就算通过了pro文件的规则校验,后续链接阶段也会报找不到qtspeech相关库的错误。
内容的提问来源于stack exchange,提问作者HARSH MITTAL
相关产品推荐
相关产品推荐

