编译和连接(转载)

本文介绍了编译的基本概念,包括如何将高级语言转换为计算机可识别的2进制语言,并详细解释了编译过程的五个主要阶段。此外,还探讨了连接程序的作用,即如何将多个目标文件和库文件组合成一个可执行文件。最后,通过具体的Linux gcc命令示例展示了C/C++程序的编译和运行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译:1、利用编译程序从源语言编写的源程序产生目标程序的过程。
编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

 

连接:
用来把要执行的程序与库文件或其它已经编译好的子程序(能够完成一种独立功能的子模块)连接在一起,形成机器能执行的程序。
连接的作用:
1、当源文件很大时,需要分成多个源文件来编译,当每个源文件被编译成多个目标文件后,再用连接程序把每个小的目标文件连接起来,生成一个可执行文件。
2、当程序中调用了库文件中的子文件时,需要将这个库文件和生成的目标文件连接在一起,生成一个可执行文件。
3、当一个源文件经过编译后生成的目标文件还是不能直接生成可执行文件时,需要用连接程序将这些内容处理为最终的可执行信息。


linux编译c/c++程序:
gcc -o hello hello.c
gcc -o object file1.c file2.c
./object来运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值