加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 有和没有操作系统的两个空的主要{}程序有什么区别?

发布时间:2020-12-16 05:44:14 所属栏目:百科 来源:网络整理
导读:当使用C/C++编译器使用OS(例如 linux)和没有操作系统(例如嵌入式DSP目标)编译目标时,两个空程序main {}之间有什么区别?我有兴趣知道编译器在有操作系统的时候有所不同.两种情况下,编译器/语言运行时间有何不同? 解决方法 实际上,链接器在打包程序以在操作
当使用C/C++编译器使用OS(例如 linux)和没有操作系统(例如嵌入式DSP目标)编译目标时,两个空程序main {}之间有什么区别?我有兴趣知道编译器在有操作系统的时候有所不同.两种情况下,编译器/语言运行时间有何不同?

解决方法

实际上,链接器在打包程序以在操作系统上运行时执行不同的工作,而不是单独在裸机上运行程序.编译器仅产生由针对主机架构的指令组成的目标文件,并且这些块后来被链接器组合和打包.

旨在在操作系统上运行的程序必须具有一定的二进制结构 – 这就是可执行格式的发挥.这样的格式可能指示程序应该在开始时有几个标题部分,然后代码应该遵循.操作系统加载程序的工作是解释这个结构,然后用代码段包含的指令流来给CPU提供.

相反,要在裸机上运行的程序通常没有特殊的结构,可以直接馈送到CPU.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读