gcc编译器简介

编译器:gcc
(编译选项、静态库和动态库的制作和使用)
一、gcc特点:能够实现交叉编译(在当前CPU平台能够编译出在其他CPU平台运行的代码)
二、gcc编译过程:预处理、编译、汇编、链接
预处理:1、头文件展开:vim/usr/include/stdio.h
2、宏替换
3、条件编译
3、预处理指令:#line、#error(不检查语法错误)
< >:系统头文件目录
" ":先在当前目录搜索,然后到系统的头文件目录
gcc -E 文件名 预处理不检查语法错误
gcc-S 文件名 编译阶段检查语法错误
gcc-c 生成目标文件 汇编阶段
链接:建立符号表
gcc 文件名(demo.c) -o 重命名 (demo)
gcc-w 关闭警告 gcc-wall 警告打开
gcc-D 外部向程序中定义一个宏
-o1 -o2 一级优化/二级优化

静态库和动态库的使用:
1、什么是库文件?
保存函数和变量,只能使用不能看到其实现
SDK开发包:库文件+开发工具
2、Linux库文件分类(使用静态库和动态库编译生成的可执行文件的优缺点)
静态库(.a):使用静态库编译程序,是在编译时加载(生成程序大,占用内存大)
动态库(.so):使用动态库编译程序,是在运行时加载(生成程序小,占用内存小)
3、Linux库文件存放位置:/lib /usr/lib
4、制作静态库
ar rcs (不存在就创建 存在即更新) ar rcs libcal.a lib 为前缀 .a为后缀 cal 为文件名
gcc -c add.c gcc -c sub.c
ar -rcs libcal.a add.o sub.o
./cal
gcc main.c -lcal -L /root/0923/lib -l(链接) -L(指定存放位置)
gcc main.c -lcal -L
gcc -shared -fPIC add.c sub.c -o libcal.o
gcc main.c /root/0923/libcal.so gcc main.c ./libcal.so -o cal

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值