LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1832|回复: 8

[总算明白了] cross compiler 的大致架构。

[复制链接]
发表于 2006-2-25 22:33:00 | 显示全部楼层 |阅读模式
BookVersion: CLFS 32bit powerpc
第五章 建立出一个 cross compiler,供第六章使用。
第六章 用到的工具都是 本机 的工具,所有编译出来的都是运行在 目标机器 上的,本机 不能运行。


拿 i686-pc-linux-gnu(简称i686) -> power-unknow-linux-gnu(简称power) 来说:

目录:ctools。就是book 上的 ctools。
这里边的全部是运行在 i686 上的程序。用来编译 power 的程序。

目录:ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu        (ctools/$build/$host)
为 power 拼组程序的基础文件,就是assembler的基础。
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libopcodes.la
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libopcodes.so
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libbfd-2.16.1.so
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libopcodes-2.16.1.so
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libopcodes.a
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libbfd.a
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libbfd.la
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/lib/libbfd.so
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/include/bfd.h
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/include/dis-asm.h
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/include/symcat.h
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/include/ansidecl.h
ctools/i686-pc-linux-gnu/powerpc-unknown-linux-gnu/include/bfdlink.h

目录:ctools/powerpc-unknown-linux-gnu/bin        (ctools/$host/bin)
为 power 体系编译程序的软件。
ctools/powerpc-unknown-linux-gnu/bin/ar
ctools/powerpc-unknown-linux-gnu/bin/as
ctools/powerpc-unknown-linux-gnu/bin/ld
ctools/powerpc-unknown-linux-gnu/bin/nm
ctools/powerpc-unknown-linux-gnu/bin/c++
ctools/powerpc-unknown-linux-gnu/bin/g++
ctools/powerpc-unknown-linux-gnu/bin/gcc
ctools/powerpc-unknown-linux-gnu/bin/strip
ctools/powerpc-unknown-linux-gnu/bin/objdump
ctools/powerpc-unknown-linux-gnu/bin/ranlib

目录:ctools/powerpc-unknown-linux-gnu/lib                (ctools/$host/lib)
包括了为 power 编译提供 libc 库的 libstdc++.so.6.0.6。也就是提供了在 power 上运行的程序的 C 库。
ctools/powerpc-unknown-linux-gnu/lib/libmudflapth.so.0.0.0
ctools/powerpc-unknown-linux-gnu/lib/libmudflap.so.0
ctools/powerpc-unknown-linux-gnu/lib/libmudflapth.so.0
ctools/powerpc-unknown-linux-gnu/lib/libstdc++.la
ctools/powerpc-unknown-linux-gnu/lib/libstdc++.so
ctools/powerpc-unknown-linux-gnu/lib/libmudflapth.la
ctools/powerpc-unknown-linux-gnu/lib/libmudflapth.so
ctools/powerpc-unknown-linux-gnu/lib/libgcc_s.so.1
ctools/powerpc-unknown-linux-gnu/lib/libstdc++.a
ctools/powerpc-unknown-linux-gnu/lib/libstdc++.so.6

目录:ctools/bin                 (=ctools/$host/bin)
和 ctools/powerpc-unknown-linux-gnu/bin/ 里边的命令是一致的。交叉编译软件的时候,放入PATH中就可以产生 power 体系的程序。
ctools/bin/powerpc-unknown-linux-gnu-strings
ctools/bin/powerpc-unknown-linux-gnu-ar
ctools/bin/powerpc-unknown-linux-gnu-as
ctools/bin/powerpc-unknown-linux-gnu-ld
ctools/bin/powerpc-unknown-linux-gnu-nm
ctools/bin/powerpc-unknown-linux-gnu-c++
ctools/bin/powerpc-unknown-linux-gnu-g++
ctools/bin/powerpc-unknown-linux-gnu-cpp
ctools/bin/powerpc-unknown-linux-gnu-gcc
ctools/bin/powerpc-unknown-linux-gnu-objcopy
ctools/bin/powerpc-unknown-linux-gnu-objdump
ctools/bin/powerpc-unknown-linux-gnu-gcov
ctools/bin/powerpc-unknown-linux-gnu-size
ctools/bin/powerpc-unknown-linux-gnu-gcc-4.0.2
ctools/bin/powerpc-unknown-linux-gnu-addr2line
ctools/bin/powerpc-unknown-linux-gnu-strip
ctools/bin/powerpc-unknown-linux-gnu-gccbug
ctools/bin/powerpc-unknown-linux-gnu-c++filt
ctools/bin/powerpc-unknown-linux-gnu-readelf

目录:ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2
提供给为 power 体系编译的,而且版本为 4.0.2 的 gcc 使用。主要是连接库的作用。
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/crtbeginS.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/crtbeginT.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/libgcov.a
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/ecrti.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/ecrtn.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/install-tools
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/crtbegin.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/ncrti.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/ncrtn.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/libgcc_eh.a
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/libgcc.a
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/include
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/crtsavres.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/crtendS.o
ctools/lib/gcc/powerpc-unknown-linux-gnu/4.0.2/crtend.o


目录:ctools/libexec/gcc/powerpc-unknown-linux-gnu/4.0.2
提供给 gcc 使用的3个文件,这个 gcc 为 power 体系编译程序,4.0.2 版本。
ctools/libexec/gcc/powerpc-unknown-linux-gnu/4.0.2/cc1
ctools/libexec/gcc/powerpc-unknown-linux-gnu/4.0.2/collect2
ctools/libexec/gcc/powerpc-unknown-linux-gnu/4.0.2/cc1plus

目录:tools

(未完待续)
发表于 2006-2-26 11:27:16 | 显示全部楼层
好文章。

只是如何快速方便验证目标代码是否可以正常运行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-26 15:25:22 | 显示全部楼层
这个,拿去目标机器运行,这个是最快的方法。
回复 支持 反对

使用道具 举报

发表于 2006-2-26 18:42:19 | 显示全部楼层
powerpc..............
回复 支持 反对

使用道具 举报

发表于 2006-2-26 22:11:05 | 显示全部楼层
用虚拟机吧,应该有的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-27 00:11:33 | 显示全部楼层
虚拟机不容易找噢,x86_64,powerpc的还好,我记得有软件。但是 Alpha, MIPS, Solaris 这些,就似乎没有了。:)。
回复 支持 反对

使用道具 举报

发表于 2006-11-20 16:34:15 | 显示全部楼层
有arm的么?
回复 支持 反对

使用道具 举报

发表于 2006-11-21 19:12:48 | 显示全部楼层
Post by taurusivy
有arm的么?

skyeye
回复 支持 反对

使用道具 举报

发表于 2006-11-23 17:24:27 | 显示全部楼层
qemu不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表