Chromium Ninja 构建失败(非法指令输出)

Posted

技术标签:

【中文标题】Chromium Ninja 构建失败(非法指令输出)【英文标题】:Chromium Ninja build fails (Illegal Instruction output) 【发布时间】:2013-10-30 16:34:13 【问题描述】:

我遵循Linux build instructions,当我尝试运行“ninja -C out/Debug chrome”时,我只得到输出“非法指令(核心转储)”。现在,我希望我能真正找到核心转储的位置,看看那里是否有更具体的信息......

作为参考,我正在尝试在 Ubuntu 13.10 上运行 Ninja。

有没有其他人在构建 Chromium 或尝试使用 Ninja 构建其他东西时遇到过这种情况?另外,我在哪里可以找到核心转储?

【问题讨论】:

对不起,我在 13.10 中还没有构建 Chromium,但在 12.10 中我已经做了很多次。尝试传递“-v”标志以在构建时获取更多信息。此外,除非您对调试感兴趣,否则构建“Release”会快得多。总结一下,“ninja -v -C out/Release chrome”是怎么说的? 【参考方案1】:

错误消息“Illegal Instruction (core dumped)”表示当前二进制文件正在使用您的 CPU 不支持的指令。

请检查用于编译的软件(编译器、链接器、ar、ninja-build 等)是否与您的 CPU 架构相匹配。除非你没有像 ARM 或 POWER 这样花哨的系统,否则你会把 32 位(例如 i586)和 64 位(x86-64)混为一谈。

或者你编译到错误的目标。您的编译器标志是否包含以 -m 开头的标志,例如“-march=”?这可能会导致相同的错误,但前提是编译的代码被执行。 你自己建造了 gyp 或 ninja-build 吗?这将是另一个犯这种错误的地方。

【讨论】:

以上是关于Chromium Ninja 构建失败(非法指令输出)的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7 命令因信号而失败:非法指令 4

Chromium 的唯一 GPU 构建解决方案

在没有 LTO 的情况下构建 Chromium、WebRTC

OSX 上的 chromium 构建失败(本机客户端失败)

使用ninja -C out/Release指令编译安卓Webrtc的SDK报错找不到android ndk处理方式

构建 Chromium webui 测试而不重建所有 browser_tests