一个类似的(描述性较差),职位是在这里.
我正在尝试使用Ubuntu上的最新版本推出自己的工具链,并希望在这里有足够的Linux社区,我可以在出现问题时获得有关某些问题的具体建议.
在大家的帮助下,我希望最终能够看到这一点.
几乎每个人都提到的" Crosstool " 首先是一点点(2006年)已经过时了," Crosstool-NG "似乎现在正在我的机器上携带火炬.我宁愿调试进程本身而不是脚本(这似乎需要我理解这个过程).
以下是我到目前为止工作的基本步骤; 目前我被困在尝试编译第一次通过GCC.
失败的地方......
它失败了,因为缺少包含"crti.o"的交叉编译库:
# ./gcc-4.4.1/configure --target=arm-linux --disable-thread --enable-langauges=c /bin/bash ../../../gcc-4.4.1/libgcc/../mkinstalldirs . /usr/src/gnu-4.4.1-build/./gcc/xgcc -B ........ /usr/local/arm-linux/bin/ld: crti.o No such file: No such file or directory collect2: ld returned 1 exit status make[2]: *** [libgcc_s.so] Error 1 make[2]: Leaving directory `/usr/src/gnu/gcc-4.4.1-build/arm-linux/libgcc' make[1]: *** [all-target-libgcc] Error 2 make[1]: Leaving directory `/usr/src/gnu/gcc-4.4.1-build' make: *** [all] Error 2
构建步骤
在"新配置"的Ubuntu 9.04安装中,以下是我到目前为止所做的步骤:
#New configuration of Ubuntu 9.04 sudo updatedb sudo apt-get install build-essential subversion # For kernel configuration sudo apt-get install libncurses5-dev # For building GCC sudo apt-get install libgmp3-dev libmpfr-dev #Get Linux Headers for GCC/GLIBC compilations # I use a hacked Linux from Artilla, pushd ~ && svn co http://.../linux m501-linux && cd !$ make ARCH=arm m501_defconfig make ARCH=arm menuconfig sudo mkdir /usr/local/arm-linux/include sudo cp -dR include/asm-arm /usr/local/arm-linux/include/asm sudo cp -dR include/linux /usr/local/arm-linux/include/linux cd /usr/local/arm-linux/ sudo ln -s include sys-include popd #Get sources: cd /usr/src/ sudo su root mkdir gnu ftp ftp.gnu.org # get gnu/binutils/binutils-2.19.1.tar.bz2 # get gnu/gcc/gcc-4.4.1/gcc-4.4.1.tar.bz2 # get gnu/glibc/glibc-2.10.1.tar.bz2 # get gnu/gdb/gdb-6.8.tar.bz2 #Build Binutils bzcat binutils-2.19.1.tar.bz2 | tar -xv mkdir binutils-2.19.1-build && cd !$ cp ../binutils-2.19.1/gas/config/tc-arm.c ./tc-arm.c sed -r 's/(as_bad[ \t]*\()(.+\[.+\]\))/\1\"%s\",\2/' < ./tc-arm.c > ../binutils-2.19.1/gas/config/tc-arm.c rm ./tc-arm.c ../binutils-2.19.1/configure --target=arm-linux make && make install && cd .. #Build GCC bzcat gcc-4.4.1.tar.bz2 | tar -xv mkdir gcc-4.4.1-build && cd !$ ../gcc-4.4.1/configure --target=arm-linux --disable-thread --enable-langauges=c -with-headers=/usr/local/arm-linux/include make
ern0.. 7
欢迎你,你并不孤单.
故事
我不知道为什么ARM交叉编译是一场噩梦.这不是我的意见,让我们看看,别人怎么说......
构建用于嵌入式系统开发的gcc/glibc交叉工具链曾经是一个可怕的前景,需要铁,即使不是几周的努力,很多Unix和Gnu传说,有时愿意采取狡猾的捷径.(http://www.kegel.com/crosstool/)
我的ARM计算机(GuruPlug)在Debian上运行,所以我只需要一个标准的G ++编译器,没有任何调整.
我在笔记本上使用32位Ubuntu.有AVR交叉编译器的deb包,甚至是Z80的deb包,但ARM没有 - 为什么?好的,我们必须编译一个.我们走吧.工具链的编译过程对我来说有点混乱.14k行长Makefile,谢谢.
几天(和晚上)之后,我失败了.
解决方案
最后,我发现了一个开箱即用的解决方案.我刚刚下载了这个东西的精简版:http://www.codesourcery.com/sgpp/lite_edition.html,现在我很高兴.它有一个丑陋的安装程序,但它的工作原理.它说: arm-none-linux-gnueabi-g ++(Sourcery G ++ Lite 2010q1-202)4.4.1,这是一个最新的G ++版本.
(我的朋友有一台Mac,他在与它斗争一周后也没有编译工具链.他现在在运行Ubuntu的VM上使用这个编译器.)
欢迎你,你并不孤单.
故事
我不知道为什么ARM交叉编译是一场噩梦.这不是我的意见,让我们看看,别人怎么说......
构建用于嵌入式系统开发的gcc/glibc交叉工具链曾经是一个可怕的前景,需要铁,即使不是几周的努力,很多Unix和Gnu传说,有时愿意采取狡猾的捷径.(http://www.kegel.com/crosstool/)
我的ARM计算机(GuruPlug)在Debian上运行,所以我只需要一个标准的G ++编译器,没有任何调整.
我在笔记本上使用32位Ubuntu.有AVR交叉编译器的deb包,甚至是Z80的deb包,但ARM没有 - 为什么?好的,我们必须编译一个.我们走吧.工具链的编译过程对我来说有点混乱.14k行长Makefile,谢谢.
几天(和晚上)之后,我失败了.
解决方案
最后,我发现了一个开箱即用的解决方案.我刚刚下载了这个东西的精简版:http://www.codesourcery.com/sgpp/lite_edition.html,现在我很高兴.它有一个丑陋的安装程序,但它的工作原理.它说: arm-none-linux-gnueabi-g ++(Sourcery G ++ Lite 2010q1-202)4.4.1,这是一个最新的G ++版本.
(我的朋友有一台Mac,他在与它斗争一周后也没有编译工具链.他现在在运行Ubuntu的VM上使用这个编译器.)