Compilation 在ARMv8上编译-在ARMv7上运行

Compilation 在ARMv8上编译-在ARMv7上运行,compilation,armv7,building,icinga,Compilation,Armv7,Building,Icinga,是否可以在ARMv8上编译包并在ARMv7上运行 我在整个建筑方面还没有真正的经验。 我提出这个问题是因为我的Odroid C1+由于RAM非常有限而无法编译icinga2。 C2有2GB的RAM,在这项任务中可能会做得更好 但是我可以在我的C1+(ARMv7)上运行C2(ARMv8)编译包吗 是否可以在ARMv8上编译包并在ARMv7上运行 这就是所谓的交叉编译,也是生成ARM代码的常用方式——只是现在大多数用于ARM二进制文件的构建机器可能都是x86_64。但如果您有一个针对运行在ARMv8

是否可以在ARMv8上编译包并在ARMv7上运行

我在整个建筑方面还没有真正的经验。 我提出这个问题是因为我的Odroid C1+由于RAM非常有限而无法编译icinga2。 C2有2GB的RAM,在这项任务中可能会做得更好

但是我可以在我的C1+(ARMv7)上运行C2(ARMv8)编译包吗

是否可以在ARMv8上编译包并在ARMv7上运行

这就是所谓的交叉编译,也是生成ARM代码的常用方式——只是现在大多数用于ARM二进制文件的构建机器可能都是x86_64。但如果您有一个针对运行在ARMv8上的平台ARMv7的编译器,我看不出有问题

我在整个建筑方面还没有真正的经验。我提出这个问题是因为我的Odroid C1+由于RAM非常有限而无法编译icinga2。C2有2GB的RAM,在这项任务中可能会做得更好

你知道什么更擅长编译吗?这是一台合适的PC,内存超过4GB,内存带宽巨大,存储带宽更高,多核CISC CPU采用流水线结构,而非节能ARM

实际上,嵌入式系统的软件通常构建在带有交叉编译器的非嵌入式计算机上。在PC上交叉编译C1+的内容肯定有不同的方法;我通常建议使用Linux发行版(如果您正在使用的话)的方法来交叉编译包


ARMv7是与ARMv8不同的平台,因此在v8上从ARMv7编译软件与在x86上为ARMv7编译软件相比没有任何优势。无论如何,您需要一个交叉编译工具链。

哦,好吧,尽管如此。。。我要去学交叉编译。非常感谢您提供的信息丰富的答案!:)“在v8上从ARMv7编译软件与在x86上为ARMv7编译软件相比没有任何优势”-不,它绝对有优势,因为有了合理的发行版,您应该能够以本机方式运行32位编译器并使用multilib。您是否同样会说“从x86上的i386编译软件与在POWER8上编译i386软件相比没有优势”?毕竟,这些都围绕着一台“合适的PC”运行:P@Notlikethat正是你说的。如果您可以在4GHz Power8计算机和400MHz奔腾II之间进行选择,为您的英特尔386SX编译软件,那么几乎没有理由使用奔腾计算机,尽管它们的体系结构非常相似。编译完全不需要本机代码执行功能!就原始性能而言,这是一个公平点;不过,就易用性而言,考虑到我发现有些项目很难进行交叉编译(例如perf tools),只需在64位机器上挂载32位文件系统,并在其中进行chroot操作,然后以本机方式运行32位工具链的能力是非常有价值的。@这与linux工具没有什么特别之处(perf通常包含的源程序包)?我见过有人为ARMv7构建它;iirc,OpenEmbedded/Yocto有一个工作层用于此。。。