标签:文件 gcc 入门 第二十三 生成 Link C语言 预处理 属性
镇楼图
Pixiv:よはく
============
一、C语言生成程序的过程:
预处理、编译、汇编、链接
C语言程序的生成需要经过预处理、编译、汇编、链接这些操作才能生成一个可执行程序
①预处理(Pre-Processing)
对C语言文件就行预处理,生成 .i 文件
②编译(Compiling)
将 .i 文件进行编译,生成 .s 汇编语言文件
③汇编(Assembling)
将 .s 文件进行汇编,生成 .o 目标文件
④链接(Linking)
将各种模块和 .o 文件进行链接,最终生成可执行文件
这一操作可以使用gcc文件来尝试实现
这里我以Win10平台为例:
【如何使用MinGw管理器参考这个blog:MinGw安装和使用】
Ctrl+R输入cmd打开shell窗口切到已经准备好C文件的地方
分别进行以下指令
gcc -E c文件 -o i文件
//Pre-process
gcc -S i文件 -o s文件
//Compile
gcc -c s文件 -o o文件
//Assembly
gcc o文件 -o 文件
//Link
可以得到i文件、s文件、o文件、可执行文件
然后可以用笔记本打开i文件、s文件
这分别对应了预处理后的文件、C代码转换成汇编代码的文件
再之后就是0101的机器代码的文件
============
二、链接属性
Link主要链接各个文件的函数等最后生成一个可执行文件。
Link属性作用于标识符,且有三种
①none
局部标识符所具有的Link属性
(即使是Link)
只能作用于当前的局部作用域、原型作用域或者函数作用域
②external
全局标识符在默认情况下具有external属性
可以作用于多个文件
③internal
需要手动使用static
关键字把external属性变成internal属性
只能作用于当前文件
static int a = 2;
//使用static是不可逆的过程,一旦修改为internal属性就无法再修改为external
参考资料
https://fishc.com.cn
http://www.cplusplus.com/reference
https://www.icourse163.org/course/ZJU-200001
标签:文件,gcc,入门,第二十三,生成,Link,C语言,预处理,属性 来源: https://www.cnblogs.com/AlienfronNova/p/14497353.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。