Ubuntu Qt: ninja: build stopped:subcommand failed解决方案
时间:2024-03-29 18:21:06 来源:网络cs 作者:璐璐 栏目:跨境风云 阅读:
阅读本书更多章节>>>>
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
本文链接:https://www.kjpai.cn/fengyun/2024-03-29/150473.html,文章来源:网络cs,作者:璐璐,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。