linux下交叉编译的问题

snakepoon 2007-04-29 02:46:12
我是新手刚学习linux下的嵌入式开发,但是配置系统开发环境的时候,有个问题我始终不明白,交叉编译说是当编译器运行在一个为另一系统产生可执行程序的系统上就发生了交叉编译,可是为什么我们需要交叉编译呢,而我们进行交叉编译时所选取的工具是以什么为标准呢?那个标准与目标机器有什么关系?譬如内核,我们自己的机也是装2.6内核的,那还有必要去下个linux-2.6.16.1.tar.bz2这样的文件来做内核吗?
...全文
413 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
snakepoon 2007-05-05
  • 打赏
  • 举报
回复
谢谢joyself(独来读网)、ahu9870(阿胡9870)、hyg2008(蓝色雨)你们的回答,令我收获不少,我本来想平均分点分的,不小心都分给一个了
joyself 2007-05-01
  • 打赏
  • 举报
回复
1. host和target的cpu类型不一样,譬如X86和ARM的汇编不同
2. 理论上可以只在target上做编译,但是ARM的资源受限,内存和存储空间。
不知到编译到猴年马月呢,呵呵。没有这个必要。
air_snake 2007-05-01
  • 打赏
  • 举报
回复
对的,编译出来的东西只能是在arm上跑.而在host上不行的.为的是开发方便
pinelinda 2007-04-30
  • 打赏
  • 举报
回复
一般的,硬件开发商都会提供针对他们产品的sdk,按照他们的“格式”编译出能在他们机器上跑得代码。
ahu9870 2007-04-29
  • 打赏
  • 举报
回复
比如你现在的机器是X86,需要为龙芯(MIPS)准备系统,就需要 X86-》MIPS 的交叉编译。
Kinges 2007-04-29
  • 打赏
  • 举报
回复
应该给楼上的加分,答的很好!
hyg2008 2007-04-29
  • 打赏
  • 举报
回复
它们的版本跟目标机没关系
区别在于编译器所做的"汇编->机器码"这个工作。
不同的cpu的机器码不一样,所以就要求有不同的编译器将C代码编译成对应的机器码。
snakepoon 2007-04-29
  • 打赏
  • 举报
回复
像那些什么binutils工具包,是不是他们的版本的选取跟目标机器有关呢?

4,468

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧