gcc学习笔记

格式:   gcc [option]  [filename]

-c 只编译生成.o文件

-o output_filename

-O 优化程序

-O2 优化程度更深

-g 产生代码调试信息

-Wall  所有警告

-Werror  报error

-w 不产生任何警告

-v 输出gcc工作的详细过程


-DMACRO 相当于#define MACRO

-I  dirname    (大写的i)用" "的头文件若在当前目录没有,则到dirname中找

-L dirname  首先到dirname中寻找所需库文件(默认在预设路径找,如/usr/lib)

-lname        在连接时装载名字为"libname.a"的函数库

                   如:  -lm  表示连接系统的数学库libm.a,所有与浮点运算相关的都必须用数学库!

-static     库分动态和静态,动态通常以.so为后缀,静态通常以.a为后缀

               静态库: 把用到的函数放在程序里,

               动态库: 在程序内留下标记,当程序执行是先载入这个库

               linux下进行连接的缺省操作是首先连接动态库


分段编译:

程序编译的流程:

  1. 预处理:  展开宏,加入"#include "包含的内容,生成预编译文件 **.i
  2. 汇编:      生成汇编源文件 **.s
  3. 编译:     生成目标文件 **.o
  4. 链接:     将目标代码链接成可执行文件(放到和合适的地方)

相关选项:

-E  预编译,生成**.i

-S  汇编,   生成.s

-c   编译,   生成.o


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值