2012-04-27 108 views
1

我在可移植的ARM设备上有一个嵌入式系统,它运行一个定制的Linux。我如何为该Linux发行版构建本机编译器?如何从GCC源代码构建本地编译器?

例如,我现在使用机器A,而在A上,我同时拥有本地编译器和机器B的交叉编译器。如何构建可以直接在B上运行的编译器?

我搜索了一下,但只找到了一些关于如何为B构建交叉编译器的教程,但没有找到如何通过交叉编译器构建本地编译器。

+0

http://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html – 2012-04-27 14:30:20

+0

大家都在同一个页面上,你需要一个编译器,它运行在你的ARM上,并编译为相同的ARM,并建立在你的(可能)更快,更便携的机器,对吗? – Kevin 2012-04-27 15:38:32

回答

0

据我了解你的问题,你有快速的非ARM主机和慢速ARM。你想在你的快速主机上构建一个编译器;编译器将在ARM系统上用于将代码编译到ARM机器上。

这种设置是几乎经典Canadian Cross

鉴于三个机A,B,和C,一个使用机械的(例如,在一个IA-32处理器上运行的Windows XP)建立一个交叉编译运行在机器B上(例如,在x86-64处理器上运行Mac OS X)为机器C创建可执行文件(例如,在ARM处理器上运行Android)。

您有B = C并且可以使用Canadian Cross构建系统。

不幸的是,这种类型的交叉编译器是最难的。有一些手册来建立这样的十字:http://airs.com/ian/configure/configure_6.html ...或尝试谷歌“加拿大交叉gcc”。

也有一些脚本来构建基于Linux的嵌入式系统。会尝试搜索一些和这里添加它们:(用some canadian support工具链建设)

+0

虽然没有显示如何做,链接是一个很好的开始! – texasbruce 2012-04-29 05:37:09

2

我不知道标记的答案是正确的。我正在研究一个项目,该项目反映了原始问题中的问题,并根据该中心的链接。张贴,原始提问者正在尝试被称为三件事之一:一个主机X主机,划过本机,或交叉建立本机 ...不是加拿大十字。

不幸的是,似乎没有关于这个问题的任何教程...至少没有我能找到。

+0

是的,这个答案并不完全正确,但是他给出的链接还是有用的......现在我不想使用本机编译器,因为它构建起来太多了。所以我现在只是使用交叉编译器。但是,谢谢你的信息:) – texasbruce 2013-10-20 21:37:14

+0

Gotcha ...有道理。出于好奇,便携式设备的品牌/型号是什么? – MonaLisaOverdrive 2013-10-21 23:09:30