【问题标题】:How can I stop make from segfaulting?我怎样才能停止 make 段错误?
【发布时间】:2011-12-05 15:19:02
【问题描述】:

我一直在尝试构建 cyanogenmod,尽管出于这个问题的目的,我怀疑它可能只是任何大型项目。我用三个不同版本的 make 尝试了三个不同版本的 Ubuntu,无论我切换到哪个版本,make 在编译过程中的某个时刻都会崩溃:

make: *** [out/target/product/passion/symbols/system/lib/liblog.so] Segmentation fault

这是 make 的行为,还是 Android 特有的?

【问题讨论】:

  • 段错误通常是程序试图访问它不拥有的内存的结果。该错误可能是您尝试编译的代码中的错误。
  • 这段代码没有运行,它正在编译。它没有访问 任何 内存。
  • Segfault 发生在运行时,而不是编译时。因此,这可能是您的编译器中的错误。 en.wikipedia.org/wiki/Segmentation_fault
  • 我知道的很多,但我希望有人能告诉我如何使 make/gcc/g++ 工具链避免这个问题。
  • 如果您没有对 CM 源代码进行任何更改,我会问他们,他们可能会欣赏错误报告。如果您进行了更改,请尝试构建纯 CM 源,看看是否会遇到同样的问题。

标签: android build compilation makefile


【解决方案1】:

make 没有段错误。问题可能出在您使用的交叉编译工具链上。

您引用的消息告诉您,为了创建“out/target/product/passion/symbols/system/lib/liblog.so”和 该程序,make 运行了一些程序,不管是什么,segfaulted。

要找出真正的问题所在,您需要查看构建过程的上述输出。除非您正在运行 make “-j” 选项,否则该消息正上方的行很可能会标识出现段错误的程序。

【讨论】:

    【解决方案2】:

    我找到了解决方案:我在 Linux 虚拟机上构建了一个共享指令,该虚拟机位于 Mac OS 上。在查看我在 VM 硬盘驱动器中的代码后,一切正常。

    【讨论】:

      猜你喜欢
      • 2020-06-20
      • 2014-06-05
      • 2020-10-26
      • 2018-11-25
      • 1970-01-01
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      相关资源
      最近更新 更多