TL/DR:我在哪里可以找到关于为ARM(gnueabi)平台(打算在Raspberry Pi设备上运行)构建GCC 4.7.0交叉编译工具链的更多信息?GCC中树莓派的交叉编译。从哪儿开始?
我刚买了一个全新的树莓派,我非常渴望为它开始编程。我设法安装了GCC工具链(我正在使用Arch Linux系统映像)并编译了一些基本程序,所有工作都很好。
我也试过编译Boost库,因为我经常在我的项目中使用它们,并且按照说明(./bootstrap.sh
+ ./b2
)似乎一切正常,除了编译速度很慢。我将它搁置了几个小时,但几乎没有超过前几个源文件。在我离开它运行了一晚之后,我发现由于RAM短缺而中止了构建过程。
所以,我的猜测是,Rasp Pi只是编译一些像Boost这样大小的东西。所以,我认为是交叉编译。但是,尽管在线提供了大量有关ARM交叉编译的信息,但我觉得它很让人困惑。哪里开始?
我在Raspberry Pi上有一个最新的GCC版本(4.7.0),所以我希望能够使用相同的版本进行交叉编译。我在哪里可以获得ARM的GCC 4.7.0工具链? (我将在x86的CentOS 6.2被编译)
编辑:
我不需要释放GPU内存,并设置了一个USB驱动器上的一个4GB的交换分区,同时建立文件上NFS共享。 Boost现在编译的速度要快得多,因此它是可管理的。我仍然想知道如何在x86 PC上建立一个GCC 4.7工具链来进行交叉编译,因为我打算做大量的编译工作,并希望它尽可能快。
编辑2:
由于GCC 4.7.0是相对较新的,似乎没有成为一个预先建立的交叉编译器(i386-> ARM)。我可能必须自己创建一个,这似乎是一项不重要的任务(我已经尝试并失败了)。有没有人知道一个教程要建立一个GCC交叉编译器,希望为最近的版本之一?
我试着this great shell script(这对于建立一个相同的拱编译伟大的工作),我已经成功地建立binutils
和GCC的先决条件,但随后GCC编译保持着许多神秘的错误失败。我真的迷失在这里,所以我会非常感谢你的帮助。上树莓裨
GCC用
--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu
--disable-libstdcxx-pch --enable-libstdcxx-time
--enable-gnu-unique-object --enable-linker-build-id --with-ppl
--enable-cloog-backend=isl --enable-lto --enable-gold
--enable-ld=default --enable-plugin --with-plugin-ld=ld.gold
--with-linker-hash-style=gnu --disable-multilib --disable-libssp
--disable-build-with-cxx --disable-build-poststage1-with-cxx
--enable-checking=release --host=arm-unknown-linux-gnueabi
--build=arm-unknown-linux-gnueabi
编辑3配置:
我设法建立使用this shell script为ARM 4.7 GCC工具链(耶!)通过在用户dwelch所建议注释。我还使用this article作为指导,建立了newlib
和libstdc++
。工具链可以正常工作,但是如果我在Raspberry Pi上运行可执行文件,它会以Illegal instruction
失败。这可能是什么原因?
尝试zram包,如果它尚未安装。这将创建一个压缩的RAM交换,这比你想象的更有帮助。 (太奇怪了。)还要添加一个非常快速的USB设备,无论是美元硬盘还是高质量的USB棒,并把交换。 –
此外,在这个线程,你可以阅读如何禁用图形内存,所以你获得32兆内存:http://www.raspberrypi.org/phpBB3/viewtopic.php?f=5&t=4831&p=65410 –
哇,谢谢。我实际上已经为GPU分配了128MB。难怪一切都如此缓慢。 – Tibor