gcc学习总结(1)

本文是作者对GCC学习的初步总结,主要介绍了GCC在嵌入式Linux开发中的作用,特别是其作为交叉编译器的特性。通过讲解GCC的编译过程,包括预处理、编译、汇编和链接四个阶段,以及各种编译选项的应用,如-E、-S、-c等,帮助理解编译原理。同时,提到了函数库的静态库和动态库区别,并强调了头文件、链接库选项-I、-l和-L的正确使用。文章鼓励程序员进行知识分享和深入学习。

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

       作为一个程序猿小白,每次有困惑时看到别的阿猿码的博客,收益颇多,感叹他们的分享精神和技术能力之余,而对于自己写博客还是少点勇气,除了写作上的要求外,技术上能否深入浅出,不拘一格,把想明白的思路准确表达总结出来,也是很大的挑战,今天特为博客杀青,希望自己坚持下来,与君共勉!

      今天在调试的时候遇到了有关gcc的编译优化的问题,觉得知识不总结,不明白它的前世(历史)今生(发展),总有一种“不知庐山真面,只缘身在此山中”的感觉,如果真的有人问:gcc乃何物?大脑里总不能除了“是个编译器”就再没有想法了!就像师兄花了将近一千美刀入手了一套TI的DSP2000系列的开发套件,也仅仅是停留在修改include别人的code(成果)的层次,试想每天有多少人把砖搬来搬去呢?

        感谢开源,gcc(即GNU Compiler Collection)是GUN项目中符合ANSI C标准的编译系统,初学嵌入式的时候接触到的,它功能确实很强大,不仅能够编译用C、C++和Objective-C等语言写的程序;又是一个交叉平台编译器,能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,很适合在嵌入式领域(开发环境大多基于交叉编译)的开发编译。

①在Linux中也可以查询gcc的版本,命令如下:

                     $ cat /proc/version   (p.s.14.04.1LTS版本应该是4.8.2)

②gcc所支持扩展名:

.c c源程序
.C/.cc/.cxx c++源程序
.m Objective-C源程序
.i 已经过预处理的C源程序
.ii 已经过预处理的C++源程序
.s/.S 汇编语言源程序
.h 预处理文件(头文件)
.o 目标文件
.a/.so 编译后的库文件
      要真正理解这些扩展名后缀,就得知道gcc的编译流程,其实man一下gcc手册就知道了,shell给的描述是:When you invoke GCC,it normally does preprocessing,compilation,assembly
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值