4.6第七周

本次课我们学习了gcc,了解了程序编译器的编译过程以及静态库和动态库的区别,各自的优缺点。

gcc属于GNU计划可以编译多种语言

编译器编译过程:预处理,编译,汇编,链接

1.预处理:

gcc -E文件名 预处理阶段暂停

   头文件展开,#include<stdio.h>展开

   宏替换#define

   条件编译

2.编译

gcc -c 文件名

语法检查

词法分析

3.汇编

gcc -S 文件名

 

gcc 文件名1 -o 文件名2 改名字

 

库文件:可以使用文件里面的函数和变量,但是看不见变量和函数功能实现

      静态库是在执行程序之前(编译)就已经加入到执行代码中,成为执行程序的一部分来执行,后缀名:.a  执行效率高,生成的可执行文件占用更多内存,更容易部署

      gcc -c add.c 生成add.o

      ar rcs 库名(libadd.a) add.o

      cp libadd.a/lib

      gcc main.c -ladd -L.

      

      动态库是在执行程序启动时加载到执行代码中,后缀名:.so  更容易升级,占用内存小,不容易部署,执行效率低

     创建: gcc -shared -fPIC -o 库名.so 源文件.c

     使用:gcc 源文件.c./库名.so -o 可执行文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值