当前位置:首页 » 编程软件 » 代码编译后变成二进制可执行

代码编译后变成二进制可执行

发布时间: 2022-04-19 06:58:51

⑴ 源程序文件是怎样变成可执行的二进制文件的

通过下面这条命令,main.c和swap.c就产生了一个可执行二进制文件swap》gccmian.cswap.c-oswap那么这条命令是么样把源程序变成可执行程序的呢?步骤如下:1、驱动程序首先调用C预处理器(CPP)把源文件翻译成一个ASCII中间文件mian.i,预处理器会把#include所包含的内容都插入到声明的位置,并且做宏替换,把main.c文件的第3行的SIZE替换成2(注意这里只是做简单的文本替换)。2、接下来驱动程序的C编译器将main.i翻译成汇编语言程序main.s3、然后驱动程序的汇编器将汇编语言程序main.s翻译成可重定位的二进制文件main.o4、最后运行链接器将main.o与swap.o以及一些必要的系统目标文件(比如你将调用的printf函数就是printf.o)连接起来变成一个可执行的二进制文件。

⑵ C/C++语言编译生产可执行的二进制文件的过程求大神详尽解释,

  1. 预编译。编译器将你的.c、.cpp源代码,通过解释其中的预编译指令,将源代码转换成相应的没有任何预编译指令的代码。

  2. 编译、优化。将上一步的代码编译成汇编指令,并作一定优化,形成对应的.s汇编代码

  3. 汇编。将.s文件汇编成机器码,形成对应的.o目标文件,此时是不可执行的二进制文件。生成对应的清单文件。为了连接需要,还会生成未定向符号表、导出符号表、地址重定向表等等。

  4. 连接。先根据对应的清单文件、连接文件及之间的调用关系,决定所有的目标文件及引用的库文件在最后可执行文件中的位置;然后做一些其他事情,比如根据符号表等将目标文件中的符号地址补全等等;最终得到可执行文件。

这只是我个人的简单理解,更详尽的解答都可以写成好几本书了=_=望采纳~

⑶ C++编译以后是二进制代码二进制代码的程序不是在任何系统下都能运行的

取决于编译器。一般来讲每个操作系统都有各自对应的C++编译器。举个例子,若想在LINUX上运行开发的程序,则需要使用支持Linux平台的编译器。
可以这么理解,语言只是一组规范,而编译器是将这些规范解释到对应的操作系统的机器指令。
另一种语言JAVA,与之相反,是跨平台的。理论上使用一个编译器生成的可执行文件,可以运行在任意一个操作系统上。这是JAVA语言与C++等语言重大不同之一。当然,跨平台的前提是,各个操作系统都有对应的JAVA虚拟机。即,Java程序是基于JAVA虚拟机运行的,而不是直接与系统交互。

⑷ C#如何编译为二进制可执行文件

默认情况下,C#编译后是一个EXE文件,但是却依赖于.NET FRAMEWORK框架才能运行。如果要脱离这个框架,你需要把C#生成的EXE文件编译成本机代码,然后才能脱离这个.NET框架运行。完整实例,可以参考:http://hi..com/44498/blog/item/dabd37166a11bd10962b437d.html

⑸ 计算机翻译程序如何把一个面向人看懂的语句组成程序变成计算机可执行的二进制代码的过程

计算机程序语言主要有两类,一种是脚本语言,另一种是需通过编译的语言。

脚本语言通过解释执行。编译语言通过编译器翻译后执行。

在纸上写好人看懂的语句组成的程序,当然是按脚本语言或编译语言的语法规定写的。
用编辑器,例如notepad,从键盘打进去,存成磁盘文件。

解释器,边读程序,边解释,边执行。例如,浏览器处理HTML网页,Shell处理“批”文件。

编译语言,由编译器读入全部程序,然后做词法分析,句法分析,语法分析,逻辑结构分析,按语句顺序及程序内容规定的条件转移次序,翻译成数据和指令码,链接嵌入必要的库的代码,作优化后把可执行码(二进制代码)存回磁盘。最后用户运行可执行码。例如,vb,vc程序。

⑹ 将v b语言的程序变成计算机可执行的二进制代码这工作通常是由什么执行

编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序整个地翻译成用机器语言表示的与之等价的目标程序。
然后计算机再执行该目标程序,以完成源程序要处理的运算并取得结果。解释方式是指源程序进入计算机后,解释程序边扫描边解释,逐句输入逐句翻译,计算机一句句执行,并不产生目标程序。
利用编译程序从源语言编写的源程序产生目标程序的过程。 用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

c语言是如何编译成二进制

计算机专业有门课程叫做《编译原理》,详细讲述了怎么把高级语言翻译成汇编语言活着机器能看懂的二进制代码。

简单的说,C语言是通过编译器翻译成二进制代码的(就像英译汉的软件把英文翻译成汉语一样。把高级语言翻译成机器语言过程很复杂,学了编译原理就懂了)。还有编译器可以用各种语言编写,C语言可以被用C语言写的编译器来编译。

⑻ 我们编写的汇编语言和C语言如何能够转换成计算机可读的二进制

将用高级语言写成的程序变成机器可识别的二进制代码的过程称为编译过程.
因为在计算机中,各种信息和数据都是以文件形式存放的.在编辑方式下建立起来的程序文件称为源程序文件,简称源文件(如noname.c),相应的程序叫做源程序.源程序是用高级语言编写的,它不能直接在机器上运行.因为计算机并不能识别源程序,它仅认识规定范围内的一系列二进制代码所组成的指令数据,并按预定的含义执行一系列动作.通常把这些计算机能识别的二进制代码称为目标代码.为了把源程序变成目标代码,就需要有个"翻译"做这种转换工作.具体实现这一转换功能的软件就是编译程序,如C语言编译程序.
经编译后生成的目标程序的文件叫做目标文件(如noname.o).
连接:因为程序中会用到库函数或其他函数,所以目标程序还不能马上在机器上运行,需要把它们连成一个统一的整体,这就是连接.经过连接就把分离的目标程序连成完整的可执行程序,对应的文件是可执行文件.
运行:运行可执行文件,可得到相应的结果.如果发现运行结果不正确,那么就要分析出错原因,然后重新进入编辑方式,修改源程序.经编辑之后,再重复上述的编译,连接,运行等步骤.
我们用QASM写的是源程序,编写好的程序编译后形成的.obj是目标文件。.obj通过连接程序后形成.exe可执行程序。(WIN系统中程序编译过程)
深入讲解见参考资料

python的程序可以编译成二进制可执行文件么

python下编译py成pyc和pyo
其实很简单,

python -m py_compile file.py
python -m py_compile /root/src/{file1,file2}.py
编译成pyc文件。
也可以写份脚本来做这事:
Code:

import py_compile
py_compile.compile('path') //path是包括.py文件名的路径


python -O -m py_compile file.py
编译成pyo文件。
1.其中的 -m 相当于脚本中的import,这里的-m py_compile 相当于上面的 import py_compile
2.-O 如果改成 -OO 则是删除相应的 pyo文件,具体帮助可以在控制台输入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什么是pyc文件
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。
什么是pyo文件
pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件

什么是pyd文件
pyd是python的动态链接库。

为什么需要pyc文件
这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出 py文件源码,网上可以找到一个反编译python2.3版本的pyc文件的工具,不过该工具从python2.4开始就要收费了,如果需要反编译出新版本的pyc文件的话,就需要自己动手了(俺暂时还没这能力^--^),不过你可以自己修改python的源代码中的opcode文件,重新编译 python,从而防止不法分子的破解。
生成单个pyc文件
python就是个好东西,它提供了内置的类库来实现把py文件编译为pyc文件,这个模块就是 py_compile 模块。
使用方法非常简单,如下所示,直接在idle中,就可以把一个py文件编译为pyc文件了。(假设在windows环境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函数原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要编译的py文件的路径
cfile 表示编译后的pyc文件名称和路径,默认为直接在file文件名后加c 或者 o,o表示优化的字节码

from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html

⑽ llvm怎样将中间代码编译为可执行二进制文件

预编译。编译器将你的.c、.cpp源代码,通过解释其中的预编译指令,将源代码转换成相应的没有任何预编译指令的代码。

编译、优化。将上一步的代码编译成汇编指令,并作一定优化,形成对应的.s汇编代码
汇编。将.s文件汇编成机器码,形成对应的.o目标文件,此时是不可执行的二进制文件。生成对应的清单文件。为了连接需要,还会生成未定向符号表、导出符号表、地址重定向表等等。
连接。先根据对应的清单文件、连接文件及之间的调用关系,决定所有的目标文件及引用的库文件在最后可执行文件中的位置;然后做一些其他事情,比如根据符号表等将目标文件中的符号地址补全等等;最终得到可执行文件。
这只是我个人的简单理解,更详尽的解答都可以写成好几本书了=_=望采纳~

热点内容
sdf数据库密码 发布:2025-03-20 20:03:55 浏览:116
戴尔服务器如何开机 发布:2025-03-20 19:58:16 浏览:745
威联通局域网共享ftp 发布:2025-03-20 19:57:39 浏览:113
如何修改服务器编码格式 发布:2025-03-20 19:56:40 浏览:265
java图形界面布局 发布:2025-03-20 19:56:39 浏览:104
java的加载与编译 发布:2025-03-20 19:47:55 浏览:227
c语言回车退出 发布:2025-03-20 19:34:42 浏览:967
好屋源码 发布:2025-03-20 19:24:02 浏览:75
安卓手机怎么改手势接听 发布:2025-03-20 19:23:47 浏览:993
手机wifi在哪个文件夹 发布:2025-03-20 19:22:57 浏览:403