gcc常见选项

本文介绍了GCC编译器的基本概念,从源文件到可执行文件的编译过程,以及交叉编译。详细讲解了包括-E、-S、-c、-o、-g、-I、-L、-static、-O1、-O2、-O3、-w、-Wall在内的编译选项的用途和用法,并讨论了Linux下动态链接库和静态链接库的搜索路径及环境变量的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、gcc概述

 

GNU计划提供的编译器。(在unix系统中,则是cc编译器)

2、由源文件到可执行文件需要经历的步骤

 
  1. 1.预处理:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)(.i)使用预处理器
  2. (预处理阶段处理的都是以#开头的代码)
  3. 2.编译:检查语法、转成汇编、生成汇编文件(.s/.S)使用编译器
  4. 3.汇编:由汇编变为目标代码(机器代码)生成目标文件(.o)使用汇编器as
  5. 4.链接:链接所有目标文件,生成可执行程序,使用链接器ld

3、 交叉编译

在宿主机下编程出在目标机下运行的代码的过程,这就是交叉编译。(首先需下载交叉编译器),即在当前cpu平台编译出在其他cpu平台运行的代码的过程。

4、编译选项

(1)-E:只进行预处理(.i)
gcc -E demo.c > demo.i :将预处理信息放到.i文件中

(2)-S:只激活预处理和编译,就是指把文件编译成为汇编代码。(.s/.S)

(3)-c:只激活预处理,编译,和汇编,也就是他只把程序做成obj文件(.o)

(4)-o:制定目标名称

(5)-g 生成调试信息。GNU 调试器可利用该信息。

(6)-I+路径:指定头文件的第三方搜索路径
#include “stdio.h”和#include <stdio.h>的区别:搜索路径不同
<>:在系统头文件目录(/usr/include)中搜索,若没有,则报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值