您现在的位置是:首页 > 诗句大全

Ubuntu Qt: ninja: build stopped:subcommand failed解决方案

作者:峨乐时间:2024-03-30 16:45:38分类:诗句大全

简介  文章浏览阅读2.8k次,点赞2次,收藏4次。因为Qt需要LLVM来生成qdoc. 在Ubuntu中通过安装包或者源码安装的LLVM,LLVM/Clang默认是禁用RTTI.不需要生成qdoc, 那么在配置configure时增加-no-feature-clan

点击全文阅读

Ubuntu Qt: ninja: build stopped:subcommand failed解决方案

编译Qt源码时,出现报错:

ninja: build stopped:subcommand failed

滑动终端上的编译日志,通过日志上的**FAILED:**信息可以查看是编译哪个库导致的失败.

我的报错信息是:

FAILED: not found qtbase/bin/lupdate

结果反复测试,最终发现qtbase/bin目录下的lupdate文件在编译时总是自动消失,继续查看日志,最后发现:

undefined reference to `typeinfo for clang::ASTFrontendActionundefined reference to `typeinfo for clang::ASTConsumerundefined reference to `typeinfo for clang::DiagnosticConsumerundefined reference to `typeinfo for clang::PPCallbacks

报错原因:
因为Qt需要LLVM来生成qdoc. 在Ubuntu中通过安装包或者源码安装的LLVM,LLVM/Clang默认是禁用RTTI.

解决方案 1:
不需要生成qdoc, 那么在配置configure时增加-no-feature-clang, 没有实际验证过, 需要自行测试.

./configure -no-feature-clang

解决方案 2:
通过源码重装LLVM, 参考M1 arm环境 - Ubuntu 22.04 源码安装LLVM, 重装完成LLVM后,继续执行命令,继续编译Qt:

cmake --build . --parallel 2

亲测会继续编译Qt 剩余未编译部分, 不要重新执行 ./configure

比较稳妥流程:

rm -rf CmakeCache.txt./configurecmake --build . --parallel 2sudo cmake --install .

参考:
M1 arm环境 - Ubuntu 22.04 源码安装LLVM

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句