❶ C语言代码编译成的是机器码,那么怎么实现可移植性呢
C语言写的代码编译成了机器码,与编译器有关,与当前的电脑的CPU没有关系
有个概念叫交叉编译,我们做嵌入式的,就靠这个工作了
也就是在PC上编译的机器码,下载到其他的芯片里面,让它在这个芯片里运行
只要其他的电脑也支持同样的编译器产生的机器码,就可以一致到它上面
❷ lcc编译器和tdd-gcc编译器哪个好
c++编译器是一个与标准化C++高度兼容的编译环境。这点对于编译可移植的代码十分重要。编译器对不同的CPU会进行不同的优化。编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。
❸ 编译器 可移植性问题
你用tc编的程序,在windows下面可以运行,tc把它编译成二进制了
只要是windows系统,都能识别该二进制,换了其他的windows系统的电脑,以都能运行的
也就是说,对于windows系统来说,无论你用什么语言,如pascal,delphi,c++,java,只要你编译后生成了可执行文件
把它放到其他windows系统的电脑上,也都可以运行的
但是,就算是同一台电脑,如果你既安装了windows,又安装了linux
你在windows下编译出来的可执行文件,切换到linux系统下,就不能运行了
当然了,如果放在其他的系统上,如手机的symbian系统上,也是不能运行的
补充回答:
生成的二进制文件的移植性,是由操作系统,如windows,linux保证的
而我们说的c语言的移植性,是指c语言源码能否在其他系统上编译
比如我在windows环境下,写了一段c代码,放到linux下,仍然可以编译,这就说明它的移植性很好
所以,要提供c语言的移植性,必须使用标准的c的代码
如果你调用了windows的api,那么在linux下,是无法编译通过的
❹ 汇编语言编程几乎不能移植,而C/C++等就容易移植 有点搞不明白
汇编语言,和机器语言一样,是直接控制硬件的。
每种CPU,都有自己的机器语言,所以汇编不能移植。
C语言,并不直接控制硬件。
在不同的机器上,有相应的编译软件,可以把C,编译成自己系统的机器语言。
容易移植的关键:C语言是不直接控制硬件的。
❺ 编译程序中间代码的生成对编译器的前端和后端有什么作用
编译器粗略分为词法分析,语法分析,类型检查,中间代码生成,代码优化,目标代码生成,目标代码优化。把中间代码生成及之前阶段划分问编译器的前端,那么后端与前端是独立的。后端只需要一种中间代码表示,可以是三地址代码或四元式等,而这些都与前端生成的方式无关。也就是不论你前端是用fortran还是c/c++,只要生成了中间代码表示就可以了,后端是不管你是用哪种语言生成的。
❻ 64位机器MATLAB2013b和MATLAB2014a没有LCC编译器,怎么安装它
要用MATLAB2013a的mex功能重新编译一下C文件,但是64位的MATLAB没有自带的编译器。所以使用mex -setup安装。安装MATLAB2013a支持的编译器,有SDK7.1等21个,但是win8的电脑似乎装不了SDK7.1,有SDK8.1 可以装在win8.1 上,但是悲剧的是MATLAB2013
❼ 没有matlab自带编译器LCC,只有下面这个编译器,怎么把guide封装成exe
网络 deploytool函数
❽ 请问一下lcc编译器里面C语言的问题
作死的用法,直接把文件"token.h"的(预处理后的)内容作为数组的元素……
❾ 编译前端和后端各有什么特点,各自包含编译过程的哪几个部分
编译前端主要包括词法分析、语法分析、语义分析、中间代码生成这几个部分,后端则包含代码优化和目标代码生成部分。前端的特点是仅与编译的源语言有关,而后端则仅与编译的目标语言及运行环境有关。
将编译过程划分成前端和后端,主要目的是在多种源语言和多种目标语言的开发过程中,可以灵活搭配组合,消除重复开发的工作量,提高编译系统的开发效率。
❿ PIC的编译器CCS与PICC的语言有什么不同的地方,两者可以相互移植吗
对于标准的ANSC C语言部分没什么问题,如用C语言的数据类型写的简单算法之类,可以互相移植。
对于单片机编译而言,
PICC的C语言按ANSI C来定义,并进行了C语言的扩展。PICC和ANSI C有一个根本的区别就是,PICC不支持函数的递归调用。
CCS也是C语言,但也不是标准的ANSI C语言,它的头文件定义与ANSI C语言不同,所以它的程序和PICC不能混着编译,两者之间也不能混着移值。针对CCS编写的程序只能用CCS的编译器编译,用PICC编译只能报错,反之亦然。