编译系统详细资料大全

 我来答
白露饮尘霜17
2022-09-30 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7634
采纳率:100%
帮助的人:47.7万
展开全部

编译系统又称为第二类编程环境开发者根据语言的规定编写源程式,然后进行编译、连线,生成执行档,例如DOS作业系统加各类高级语言,如FORTRAN、PASCLL、C语言等就属于这种类型接口平台,用于提供编译任务输入接口以及处理状态信息输出接口,并根据输入的编译任务生成任务名;编译伺服器,用于解析所述任务名,获得相应的原始码,并进行编译,同时产生所述编译任务的处理状态信息提供给所述接口平台。

基本介绍

  • 中文名 :编译系统
  • 外文名 :Compiling system
  • 分类1 :MTK分散式编译系统
  • 分类2 :DM2预编译系统
  • 分类3 :编译系统CMake
过程,MTK分散式编译系统,DM2预编译系统,编译系统CMake,反编译系统,Symbian编译系统,

过程

接收输入的编译任务;根据所述编译任务生成任务名;解析获得所述任务名对应的原始码;编译所述原始码,并输出所述编译任务的处理状态信息。上述技术方案中,通过接口平台接收编译任务,由接口平台以任务名形式发起编译请求,进行编译,简化了编译输入操作;处理状态信息,通过接口平台实时提供给客户端,简化了编译监控操作,大大节约了人力资源。

MTK分散式编译系统

众所周知,MTK平台使用ARM ADS进行编译,一千多个源档案,单机需要四五十分钟才能完成,如果机器开着防毒软体,速度会更慢。为了提高编译速度,可以把防毒软体暂时停掉,但是效果不会太明显。解决问题的根本做法是利用网内闲置的机器,搭建一个分散式系统,多台机器同时编译,可以收到明显效果。 本系统由注册伺服器、编译伺服器和客户端组成。网内启动一个注册伺服器,多个编译伺服器。在MTK6223平台上,单机new一次需要50分钟的项目,使用10个编译伺服器同时编译,new一次需要13分钟。模组编译之前是在客户端工作的,需要9分钟,其中为了实现分散式编译,压缩原始码占用了2分钟,档案下载到编译伺服器需要2分钟。 从第一个模组编译到最后link之前,10台机器仅用4分钟就完成了1200个c档案的编译工作。最后的link是在本机进行的,几十秒就完了。 我曾经试过18台机器同时编译,1200个c档案不到2分钟就编译完成了,当然下载时间需要3分钟。对于开发人员来讲,new一次不再是梦魇。 当然,不能无限制地增加编译伺服器,要考虑档案传输所消耗的时间。MTK平台档案很多,需要由客户端向伺服器分发。一般地,一个客户端与十个伺服器联合编译可以达到理想效果。

DM2预编译系统

预编译系统是DM2系统的重要组成部分。它支持在C程式中嵌入使用SQL语言,充分发挥语言数据类型丰富、处理方便灵活的优势,又以SQL语言弥补高级语言难以描述资料库操作的不足,为用户提供了建立大型管理信息系统和处理复杂事务所需要的工作环境。 预编译系统还支持互动式接口DM2-ISQL、套用开发工具集DM2-FORM、DM2-GRAPH、DM2-REPORT等工作环境。

编译系统CMake

CMake就像是我们在uni上使用的make一样,是用来管理怎样编译一个project的。它的好处是: 1) 跨越多个作业系统平台,包括当前套用最广泛的windows,unix(包括Mac OS X). 2) 采用BSD风格的协定开放原始码。据我个人阅读协定档案,没发现协定与两句BSD协定有什么不同。 3) 它可以支持具有非常复杂的路径、库依赖的程式的编译。比如它支持编译个程式:它依赖于很多的库以及其它一些代码档案,而每一个库又有很多子目录。。。 4) 像很多Make一样,它会对曾经编译的档案做一些cache一遍加速以后的编译。 使用这个编译系统的时候,需要每个目录/子目录创建一个名为CMakeLists.txt的档案。 这个项目历史也算是比较悠久了,从2000年就开始了。 当前使用这个编译系统的项目:llvm/clang。。。 我就是从clang的原始码里发现的,邮件列表里有人推荐使用cmake,不要使用msvc的.sln档案

反编译系统

高级语言源程式经过 编译 变成执行档,反编译就是逆过程。 但是通常不能把执行档变成高级语言原始码,只能转换成汇编程式。 计算机软体反向工程(Reversepengineering)也称为计算机软体还原工程,是指通过对他人软体的目标程式(可执行程式)进行“逆向分析、研究”工作,以推导出他人的软体产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软体时的参考,或者直接用于自己的软体产品中。 反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软体: VB: VBExplorer ;只能反编译界面图像,好像代码不能完全反编译 JAVA: JAD ;java的反编译比较常见,所以反编译比较完全 C++ : eXeScope

Symbian编译系统

所谓编译,就是在编译程式读取源程式(字元流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的 汇编代码,再由汇编程式转换为机器语言,并且按照作业系统对执行档格式的要求连结生成可执行程式。 UNIX环境下的C编译系统所遵循的也是这么一个一般的过程。值得注意的是这个过程并不是有某个单个程式完成的,而是有多个分别完成某一方面工作的程式组合完成的。这一设计思想同我们最初提到的UNIX系统软体功能专一的特点是相符的。 归纳起来,可以将UNIX环境下C编译系统的工作过程下图所示。 C源程式头档案-->预编译处理(cpp)-->编译程式本身-->最佳化程式-->汇编程式-->连结程式-->执行档 一般我们用命令来完成对源程式的编译工作。此命令并不是一个二进制的可执行程式,而是一个shell命令档案。它的工作就是依次调用我们上面所列出的各个完成某部分工作的具体程式,将指定的c源程式转换成可执行的代码。 在UNIX系统中,实现C源程式到执行档的这一转换过程的工具是。在大多数系统中实际上是一个shell命令档案。有些系统中的C编译程式可能并不叫而是其它的一个什么名称,如Sun工作站上常用的g等等。但这些都无关紧要。大多数系统中C编译命令的用法基本上都是类似的。我们这里介绍的将以SVR4上的C编译系统为基础。 其中我们也要知道编译系统也是一个系统软体,而不是套用软体。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
力控科技
2025-03-07 广告
ForceSCADA是力控科技信创产品的重要组成部分,具备完全自主知识产权,支持部署在Linux桌面版、服务器版、嵌入式等系统架构下。使用ForceSCADA可以搭建创新性高、扩展性佳、融合度强的SCADA平台,进而构建高效、智能化的监控中... 点击进入详情页
本回答由力控科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式