交叉编译

什么是交叉编译?

  交叉编译是在一台机上编译,编译生成的可执行程序在另一台机上运行。

  如c51单片机的可执行程序,在pc机上编译,下载到C51上执行

为什么需要交叉编译?

  1. 因为目标机上资源贫乏,无法运行我们的编译器。

  难道由编译器的平台就不用编译器了吗(如树莓派)?

    不对,因为树莓派的操作系统也要在pc机上交叉编译完成才能在目标机上运行

  2. 目标机和宿主机的架构不同。

    a. 不同架构的cpu就可能存在高低电平表示方式不同,如有些架构用1来表示高电平,有些架构用1来表示低电平;

    b. 不同架构的cpu,指令集可能也不一样;程序在内存中是以指令和数据的形式存在的,不同的指令集就可能会把相同的源程序翻译成不同的指令。如x86架构用cisic(复杂指令集)、arm用risc(精简指令集)。

 

交叉编译要用交叉编译工具链。即不同的目标平台需要不同的交叉编译工具链。

 

如果我们想生成目标机(如树莓派)的可执行程序,就得在电脑上安装能编译出目标机可执行程序的交叉编译工具链(树莓派的交叉编译工具链)。

这样在pc机中就可以通过交叉编译工具链编译出在目标机上可执行的程序。

posted @   踏浪而来的人  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示