编译链接粗浅认识
2016-03-16 17:35
225 查看
一个后缀为“.c”文件(源文件),首先要被编译器编译生成目标文件(后缀为“.obj"),然后再通过链接转换为可执行文件(后缀为“.exe")才能运行。
编译:编译器对源文件进行编译,把源文件中以“文本形式”存在的源代码翻译成机器语言(二进制)的形式,并生成目标文件(源代码全部变成"二进制"的形式)。在编译期间,编译器会对源代码中的语法进行检查,如果没有错误,则生成“.obj”文件,否则会报错,程序无法通过编译。
目标文件:由编译所产生的文件,里面包含了所有的代码和数据,和一些其他信息(全都是以二进制形式存储)。
链接:当链接器进行链接的时候,先把各个目标文件在可执行文件里面的位置确定下来,然后经过一系列处理,直到把所有目标文件的内容都写在可执行文件中对应的位置上,再经过一些工作,就会生成一个可执行程序。
编译:编译器对源文件进行编译,把源文件中以“文本形式”存在的源代码翻译成机器语言(二进制)的形式,并生成目标文件(源代码全部变成"二进制"的形式)。在编译期间,编译器会对源代码中的语法进行检查,如果没有错误,则生成“.obj”文件,否则会报错,程序无法通过编译。
目标文件:由编译所产生的文件,里面包含了所有的代码和数据,和一些其他信息(全都是以二进制形式存储)。
链接:当链接器进行链接的时候,先把各个目标文件在可执行文件里面的位置确定下来,然后经过一系列处理,直到把所有目标文件的内容都写在可执行文件中对应的位置上,再经过一些工作,就会生成一个可执行程序。
相关文章推荐
- python网络编程
- 安卓开发工具、编译工具、sdk、模拟器、版本控制等等
- No compatible targets were found,Do you wish to add a new Android Virtual Device?问题解决方法。
- Swift - 产生不重复数字的随机数生成器
- kotlin练习
- Android获取真正准确的分辨率,拒绝那些瞎扯乱混的文章
- 真正的轻量级WebService框架—使用JAX-WS(JWS)发布WebService(转载)
- 【TopCoder SRM302Div1 900】JoinedString
- socket客户端代码
- Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截
- 拉普拉斯平滑与相似性
- 存储过程的优缺点(转)
- html select 下拉箭头隐藏
- Oracle & SQL Server 数据传输
- CSS3无前缀脚本prefixfree.js/Animatable
- WebApp开发环境搭建
- 完美解决“Unable to find vcvarsall.bat”错误,有需要的朋友可以参考下。【转自互联网】
- Android初试--SQLite数据库的简单介绍
- android基础回顾(四)----button的点击事件
- svm原理