初识gcc编译器

C在编译过程分为四个阶段:

1.预处理:①:头文件展开 ②:宏替换 ③:条件编译;

头文件 cd /usr/include/

   gcc -E demo.c>  demo.i[-E(只进行预处理) >(重定向) .i(预处理文件后缀名)]

  <stdio.h> 系统的头文件目录,找不到报错。

  “stdio.h” 现在当前目录中找,找不到再去系统头文件目录中找,找不到报错。

  用户自己定义的用“”  系统自带的用<>。

2.编译(进行语法检查,词法分析):gcc -c demo.c 在编译阶段停止  

3.汇编 gcc -s demo.c 在汇编阶段停止  demo.s 汇编文件 。

4.链接 单个目标无法实现运转,必须把demo.c文件和函数库文件链接在一起才可以。

 

gcc hello.c -o hello or gcc -o hello hello.c 给执行文件重命名

 

gcc -o1 .c -o 可执行文件优化文件

-o2

-o3

 

gcc -w hello.c -o hello 关闭警告

gcc -Wall hello.c -o hello 开启警告

 

gcc 多个.c文件 -o 执行文件  编译多个文件

gcc main.c add.c -o add -I../ 指定头文件第三方搜索路径

 

gcc main.c -I../ -D 外部宏定义

/lib/  /usr/lib

库函数:保存变量和函数,可以使用变量和函数,但是看不到函数的定义和实现。

静态库(.a):是在程序执行之前就加入到执行代码中,成为执行程序的一部分执行。

1.(执行速度快)2.(编译速度慢)3.(占用内存多)4.(更新麻烦)5.(部署方便)

动态库(.so):是在执行程序启动时加载到执行代码中。

 

静态库

gcc -c add.c  建立库函数add.o

ar rcs libadd.a add.o

gcc main -ladd 指定库  默认路径/lib/  /usr/lib。

gcc main.c -ladd -L/root/1111 指定库路径

 

动态库

gcc -shared -fPIC -o libadd.so add.c

gcc main.c /root/1111/libadd.so -o add

 

c语言自带库:libc.a  libc.so

     数学库: libm.a  libm.so

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值