交叉编辑概念

各位小伙伴,大家好。相信大家如果接触过代码,都会多多少少听说过“交叉编译”这个词,但是却又说不明白“交叉编译”到底是什么,那这一期我们就简单聊聊这个话题。

#1  Hello World!是怎么来的?

假设,我们有一个x.c文件,里面写着打印Hello World的代码,那计算机是如何输出这个Hello World的?计算机可不像人类这么智慧,它只能处理0和1,那它是怎么输出Hello World的呢?这就要提到编译器这个角色了,编译器就是“翻译官”,它把我们的代码转换成计算机能执行的指令,这样计算机就执行我们的代码了,输出Hello World!了。其实,编译器做的这个工作就是“编译”。

#2 复杂的嵌入式环境,如何编译?

如果说我们的目标平台不是计算机,而是嵌入式环境呢?那我们的编译过程又是怎样的呢?其实,在大多数的情况下,对于嵌入式环境的项目代码,编译过程也是在计算机上完成的,我们会通过“特殊的编译器”来把这些要运行在嵌入式环境上的代码进行编译,最后链接成可执行程序,烧录到嵌入式开发板上进行运行。这种编译环境和运行环境不一致的编译,我们就称为“交叉编译”,而这种“特殊的编译器”就统称为“交叉编译器”。

#3 编译过程不能在嵌入式环境下进行吗?

看到这里的小伙伴,可能会问,我为什么不把这个编译过程和运行过程都直接放在嵌入式环境下进行呢?这样不更省事吗?确实是这样的,但是这会面临一个现实问题,就是大部分的嵌入式环境硬件资源都不够我们去进行编译工作,而且就算可以支持,效率也会非常低,这也是为什么我们要把嵌入式项目放在计算机上面进行编译,然后再烧录到嵌入式开发板上运行的原因。

#4 能在计算机上编译和运行嵌入式项目吗?

如果说能有小伙伴提出这个问题,那证明已经掌握了“交叉编译”的概念了。既然编译和运行工作我们很难同时在嵌入式环境下实施,那为什么我们不在计算机上进行嵌入式项目的编译和运行呢?答案是可以的。而且这也是一种现在被广泛使用的方式。但是这里会涉及到一个问题,就是我们的计算机是没办法运行只有在嵌入式环境上才能运行的项目。那这里就要提到一个新的概念了,就是“仿真环境”,我们可以在计算机上模拟出嵌入式环境的特性和资源,这样嵌入式项目就能在计算机上运行了,这是对嵌入式代码开发极大的便利,那同时,我们也可以对已有的代码进行测试,这大大地加快了产品的上市周期,也节省了客户的成本。

读到这里,我相信大家都对“交叉编译”,包括嵌入式项目的运行原理,有了更进一步的了解,希望这些小知识能够帮助到大家。

那我们最后谈到了,利用“软仿环境”可以在计算机上对嵌入式项目进行测试,那这里我就要向大家强烈推荐Parasoft C/C++test这款测试工具了,C/C++test能支持非常多的嵌入式环境,可以对嵌入式代码进行整体性的动态测试和静态测试,辅助客户及早发现问题,进行修改。C/C++test不仅仅能在软仿环境下对嵌入式代码进行完备的代码测试,也支持在实际嵌入式环境中进行代码测试,所以说C/C++test在多个层面上,都是我们代码测试的不二选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值