我在便携式 ARM 设备上有一个嵌入式系统,它运行定制的 Linux。如何为该 Linux 发行版构建本机编译器?
例如,我现在使用机器 A,而在 A 上,我既有本机编译器,又有机器 B 的交叉编译器。如何构建可以直接在 B 上运行的编译器?
我搜索了一下,但只是找到了一些关于如何为B构建交叉编译器的教程,但没有找到如何通过交叉编译器构建原生编译器。
我在便携式 ARM 设备上有一个嵌入式系统,它运行定制的 Linux。如何为该 Linux 发行版构建本机编译器?
例如,我现在使用机器 A,而在 A 上,我既有本机编译器,又有机器 B 的交叉编译器。如何构建可以直接在 B 上运行的编译器?
我搜索了一下,但只是找到了一些关于如何为B构建交叉编译器的教程,但没有找到如何通过交叉编译器构建原生编译器。
我不确定标记的答案是否正确。我正在研究一个项目,该项目反映了原始问题中的项目,根据 nm 发布的链接,最初的提问者正在尝试被称为以下三件事之一:host-x-host、crossed native或cross-built本地人...不是加拿大人。
不幸的是,似乎没有关于这个主题的任何教程......至少我找不到。
据我了解您的问题,您有快速的非 ARM 主机和慢速的 ARM。你想在你的快速主机上构建一个编译器;编译器将在 ARM 系统上用于将代码编译到 ARM 机器上。
这个设置几乎是经典的加拿大十字:
给定三台机器 A、B 和 C,其中一台使用机器 A(例如在 IA-32 处理器上运行 Windows XP)构建一个在机器 B 上运行的交叉编译器(例如在 x86-64 处理器上运行 Mac OS X)以为机器 C 创建可执行文件(例如在 ARM 处理器上运行 Android)。
您拥有 B=C 并且可以使用 Canadian Cross 构建系统。
不幸的是,这种类型的交叉编译器是最难的。有一些手册可以构建这样的 Cross:http ://airs.com/ian/configure/configure_6.html ...或尝试谷歌“canadian cross gcc”。
还有一些脚本可以构建基于 Linux 的嵌入式系统。将尝试搜索一些并在此处添加它们: