linux系统编程基础回顾1河马

本文详细介绍了GCC编译器的参数使用,包括-I指定头文件路径,-c进行预处理和编译,-g添加调试信息,-Wall显示所有警告,-D宏定义,-l和-L用于链接动态库。同时,阐述了静态库和动态库的优缺点,以及如何制作静态库。静态库以lib开头,.a为后缀,通过ar命令创建。静态库在程序中静态展开,占用内存大但加载速度快;动态库则在内存中加载,节省内存但加载稍慢。
摘要由CSDN通过智能技术生成

gcc -I ./hellodir hello.c -o hello

其中-I参数指定头文件所在位置,位置可以在编译文件前,也可以在后面

-I 指定头文件所在目录位置

-c  只做预处理,编译,汇编。得到二进制文件

-g  编译时添加调试文件,用于gdb调试

-Wall  显示所有警告信息

-D   向程序中“动态”注册宏定义

-l 指定动态库库名

-L 指定动态库路径

28P-动态库和静态库理论对比

静态库在文件中静态展开,所以有多少文件就展开多少次,非常吃内存,100M展开100次,就是1G,但是这样的好处就是静态加载的速度快

使用动态库会将动态库加载到内存,10个文件也只需要加载一次,然后这些文件用到库的时候临时去加载,速度慢一些,但是很省内存

动态库和静态库各有优劣,根据实际情况合理选用即可。

 

29P-静态库制作

静态库名字以lib开头,以.a结尾

例如:libmylib.a

静态库生成指令

ar rcs libmylib.a file1.o

步骤一:

写好源代码[staticLib

 

步骤二:

编译源代码生成.o文件

 

步骤三:

制作静态库

ar rcs libname.a file1.o file2.o …

 

静态库的使用:

gcc test.c lib库名.a -o a.out

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值