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

这篇具有很好参考价值的文章主要介绍了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::ASTFrontendAction
undefined reference to `typeinfo for clang::ASTConsumer
undefined reference to `typeinfo for clang::DiagnosticConsumer
undefined 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
./configure
cmake --build . --parallel 2
sudo cmake --install .

参考:
M1 arm环境 - Ubuntu 22.04 源码安装LLVM文章来源地址https://www.toymoban.com/news/detail-768241.html

到了这里,关于Ubuntu Qt: ninja: build stopped:subcommand failed解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 虚拟机 + Ubuntu22.04 + ros2 (humble) colcon build turtlebot3_node失败的解决方案

    在虚拟机Ubuntu22.04中安装了ROS2(humble),下载turtlebot3。在 colcon build --symlink-install 编译的过程中turtlebot3_Fake_node一直失败,无法正常运行,影响后面的仿真测试。 查阅相关资料后发现问题主要出在 缺少ROS2 相关依赖Ubuntu 版本匹配 。 (1)首先通过 lsb_release-a 查看系统版本 查到

    2024年02月09日
    浏览(43)
  • Android13 编译ninja failed with: exit status 137

    现象很奇怪,主机是ubuntu 18.04, 内存有32G,并且系统中有两份Android13代码, 有一份编译正常,另外一份编译不正常,一度以为是因为下载源码不齐全导致,后面仔细看日志,原来是内存不够,导致OOM-killer杀死了。 分析: 当前界面没有太多可以参考的出错信息,看日志: 

    2024年02月22日
    浏览(49)
  • “Ninja is required to load C++ extensions”解决方案

    Ninja is required to load C++ extensions 在跑一份代码时,由于该代码中需要调用 torch/utils/cpp_extension.py 文件,而此时又未安装ninja库,所以会出现如下错误: 此时问题只在于未安装ninja库,解决方法如下: PS 什么是Ninja? 在传统的 C/C++ 等项目构建时,通常会采用 make 系统使用 Makef

    2023年04月26日
    浏览(30)
  • qt.qpa.plugin:找不到Qt平台插件“wayland“|| (下载插件)Ubuntu上解决方案

    相信大家也都知道这个地方应该做什么,当然是下载这个qt平台的插件wayland,但是很多人可能不知道怎么下载这个插件。 那么我现在要说的这个方法就是针对这种的。 完事儿了奥兄弟们。 看看效果 正常了奥。

    2024年02月10日
    浏览(49)
  • Linux(15)Ubuntu安装ninja构建工具

    在 Ubuntu 系统中安装 Ninja 的方法有很多种,下面是几种常见的方法: 使用 apt 命令安装: 从源代码安装: 首先,从 Github 上下载 Ninja 的源代码: 然后,使用 ./configure.py 命令来配置构建过程: 最后,使用 install 命令将 Ninja 安装到系统中: 使用 Python 的 pip 工具安装: 首先,

    2024年02月01日
    浏览(42)
  • Android单编模块报FAILED: ninja: unknown target ‘MODULES-IN-vendor错误解决

    有时我们需要单编Android AOSP一个APK或库文件或二进制,用来调试。 但可能这个模块本身是不参与系统整编编译的。我们在使用mmm或mm单独编译时就会报这个错误。 在检查Android.mk或Android.bp无误后,就要怀疑是不是这个目录的上级目录是不是没有包含这个目录的Android.mk,导致编

    2024年02月04日
    浏览(46)
  • Android.mk编译错误 FAILED: ninja: unknown target ‘MODULES-IN-packages-apps-XXXX‘

    Android源码中编译app时报如下错误: [ 91% 205/223] including system/sepolicy/Android.mk ... system/sepolicy/Android.mk:57: warning: BOARD_PLAT_PUBLIC_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS instead. system/sepolicy/Android.mk:62: warning: BOARD_PLAT_PRIVATE_SEPOLICY_DIR has been deprecated. Use SYSTEM_EXT_PRIVATE_SEPO

    2023年04月17日
    浏览(64)
  • 解决mysql启动时的Failed to start LSB: start and stop MySQL问题

    前言: 在下载glibc版本的Mysql时,启动mysql服务时出现了如下错误 网上搜了许多种方法:查看错误日志,或者df -h查看磁盘是否已满等都未解决,后来尝试了重新对数据库进行初始化后才解决了该问题.  数据库初始化: 在对数据库重新进行初始化之前,需要事先删除 /usr/loc

    2024年02月07日
    浏览(53)
  • Mysql问题:Failed to stop mysqld.service: Unit mysqld.service not loaded

    1 环境 :ubuntu 2 问题描述 : 停止mysql服务,输入命令: 出现如下报错: 3 解决 : 输入命令: 执行结果: 停止mysql服务,再次输入命令: 4 验证 : 查询mysql进程,输入命令: 执行结果: 没有mysql进程,说明mysql已经关闭。

    2024年02月16日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包