freebsd下作x86/arm linux的交叉编译器
2009-05-13 01:40:08来源:未知 阅读 ()
1. 源码准备,需要下载:
bison
m4
gnu make
binutils
gcc
linux-kernel
newlib
uclibc
2. 由于编译gcc时,需要bison,m4,gnu make,所以首先要将其编译。
随便编译到某个目录,或者/usr/local
# set path=(somdir/bin $path)
3. 编译binutils:
mkdir b; cd b;../binutils/configure
--prefix=/usr/cross/arm-linux --target=arm-elf --disable-nls; make all
install
编译并安装到/usr/cross/arm-linux,目标文件格式为arm-elf,只使用缺省语言提示
# set path=(/usr/cross/arm-linux/bin $path)
4. 编译gcc:
mkdir c; cd c;../gcc/configure
--prefix=/usr/cross/arm-linux --target=arm-elf --disable-nls
--without-headers; make all install
这一步是为了能够编译相应的库,也就是uclibc。
# rehash
5. 编译uclibc:
这步非常关键
make menuconfig
* 选择cpu类型,
* 设置linux头文件位置,也就是linux-kernel的顶级目录
* 去掉PIC选项
* 安装目录设置为“/arm-elf/”
make CROSS=arm-elf-
注意不要漏掉后面的“-”
在编译过程中,include目录中的asm和linux会链接到linux-kernel目录中相应的目录上
在这个过程中如果出现什么错误,优先检查这几个目录链接是否正确
make PREFIX=/usr/cross/arm-linux install
6. 再次编译gcc
cd /usr/cross/arm-linux/arm-elf/; ln -s include sys-include
在sys-include和lib目录中创建COPIED,内容分别为文件的所在目录,如:
/usr/cross/arm-lnx/arm-elf/sys-include
/usr/cross/arm-lnx/arm-elf/lib
# cd -
cd c; rm -rf *; ../gcc/configure
--prefix=/usr/cross/arm-linux --target=arm-elf --disable-nls
--with-headers=/usr/cross/arm-lnx/arm-elf/sys-include
--with-libs=/usr/cross/arm-lnx/arm-elf/lib
make all install
7. 创建crt0.o
从newlib中相应的目录中找到crt0.*,arm对应为crt0.S,i386对应为crt0.c,
用arm-elf-gcc 编译成crt0.o文件,然后将crt0.o拷贝到/usr/cross/arm-lnx/lib/gcc/arm-elf/3.4.4/
8. 完成
可以用交叉编译器编译相应的程序了。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/132/showart_53131.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:[原创]我的fvwm配置文件
下一篇:尝试了一下arm指令集的执行程序
- 讨论一下package和port一起使用的问题。 2009-05-13
- nginx的index页设置问题!! 2009-05-13
- 内核编译 修改了操作系统名称,改如何改回来? 2009-05-13
- freebsd的目录结构 2009-05-13
- mysql 迁移备份 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash