当前位置: 首页 > news >正文

做网站注意什么问题外贸怎么找客户资源

做网站注意什么问题,外贸怎么找客户资源,新疆生产建设兵团33团网站,网页制作和网站制作有什么区别摘要 本文主要是说一些gcc的使用,g和gcc使用一样就没有特殊讲述。 目录 摘要 一、背景知识 二、gcc如何完成 1、预处理(进行宏替换) 2、编译(生成汇编) 3、汇编(生成机器可识别代码 4、链接(生成可执行文件或…

摘要

本文主要是说一些gcc的使用,g++和gcc使用一样就没有特殊讲述。

目录

摘要

一、背景知识

二、gcc如何完成

1、预处理(进行宏替换)

2、编译(生成汇编)

3、汇编(生成机器可识别代码

4、链接(生成可执行文件或库文件)

5、函数库

6、静态库和动态库

7、gcc选项

三、思维导图


一、背景知识

GCC(GNU Compiler Collection)是由GNU开发的编程语言编译器套件,初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件,这里的“自由”指的是它尊重用户的自由。GCC支持的编程语言广泛,包括C、C++、Objective-C、Fortran、Java、Ada和Go等,并提供了这些语言的库,如libstdc++和libgcj等。

在GCC中,对于不同后缀的文件,它会有不同的处理方式。例如,对于.c后缀的文件,GCC会将其视为C程序;而对于.cpp后缀的文件,GCC和G++都会将其视为C++程序。此外,编译阶段,G++会调用GCC;但在连接阶段,通常会用G++来完成,因为GCC命令不能自动和C++程序使用的库连接。

在编译过程中,GCC/G++总共需要四步:第一步是预处理,生成.i的文件;第二步是将预处理后的文件转换成汇编语言,生成.s文件;第三步是将汇编语言变为目标代码(机器代码),生成.o的文件,在之前用vs中生成的就是.obj;最后一步是连接目标代码,生成可执行程序。

总的来说,GCC/G++是强大的编译器工具,广泛应用于各种编程环境和任务中,无论是用于程序开发、系统管理还是一般的文本编辑任务,都是不可或缺的工具。

二、gcc如何完成

格式:gcc [选项] 要编译的文件 [选项] [目标文件]

1、预处理(进行宏替换)

预处理功能主要包括宏定义,文件包含,条件编译,去注释等。
预处理指令是以#号开头的代码行。
实例: gcc –E hello.c –o hello.i
选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序

就是去注释、宏替换、条件编译、头文件展开等等,如下方截图,可以看出注释的东西在预编译后就会消失。

2、编译(生成汇编)

C->汇编

在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。
用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。
实例: gcc –S hello.i –o hello.s,如下方截图

3、汇编(生成机器可识别代码

汇编->可重定向二进制目标文件

汇编阶段是把编译阶段生成的“.s”文件转成目标文件
读者在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了
实例: gcc –c hello.s –o hello.o,如下方截图

4、链接(生成可执行文件或库文件)

链接多个.0、.obj->合成一个可执行文件exe

在成功编译之后,就进入了链接阶段。实例: gcc hello.o –o hello,如下方截图。

5、函数库

我们的C程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢?

最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函
数“printf”了,而这也就是链接的作用,下面两行代码就是如果没有库的时候就可以自动下载

[ly@VM-24-9-centos learn]$ sudo yum install -y glibc-static

[ly@VM-24-9-centos learn]$ sudo yum install -y libstdc++-static
 

 

6、静态库和动态库

静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a”动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,如前面所述的 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件,如下所示。 gcchello.o –o hello、gcc默认生成的二进制程序,是动态链接的,这点可以通过 file 命令验证,如下方截图。

7、gcc选项

有下面这些选项

-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
-S  编译到汇编语言不进行汇编和链接
-c  编译到目标代码
-o 文件输出到 文件
-static 此选项对生成的文件采用静态链接
-g 生成调试信息。GNU 调试器可利用该信息。
-shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
-O0
-O1
-O2
-O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-w  不生成任何警告信息。
-Wall 生成所有警告信息

三、思维导图

http://www.yidumall.com/news/60780.html

相关文章:

  • 做网站怎样投放广告网站外链有多重要
  • 哪个网站可以卖自己做的模型2021最新免费的推广引流软件
  • 视觉设计网站有哪些做销售记住这十句口诀
  • 微信如何做微商城网站外包网站
  • 网站的基本要素怎么才能在百度上做引流呢
  • 网站建设走什么科目优化关键词步骤
  • 网站域名管理怎么登陆广告推广精准引流
  • 百度网页版浏览器入口快速排名seo
  • 微信怎么做一些微网站深圳网站设计公司哪家好
  • 政府网站建设 考察报告谷歌seo需要做什么的
  • 做网站客户怎么找竞价推广开户多少钱
  • wordpress ftp备份重庆seo多少钱
  • 珠海澳门网站建设公司哪家好郑州网站优化渠道
  • wordpress模板开发教程视频百度推广优化公司
  • 《设计》在线观看seo模拟点击有用吗
  • 苏州做儿童场馆门票包票的网站营销方法有哪些
  • 高端网站建设 恩愉科技学校网站模板
  • 做网站前台后台是怎么连接的短视频平台推广
  • 毕业设计除了网站还可以做啥怎么推广平台
  • 赣州专门网公司如何点击优化神马关键词排名
  • 做一个app需要投资多少钱天津优化代理
  • 网站建设突出特色广告视频
  • 做淘宝优惠券怎么有网站全国各城市疫情高峰感染进度
  • 建设文化网站好处搜索引擎优化排名seo
  • 做的比较好的返利网站知乎建站abc网站
  • 专业网站设计哪家好开发一个app平台大概需要多少钱?
  • 网站团队seo大全
  • 做房产网站接不到电话百度搜索最多的关键词
  • 宣传网站怎么做百度知道提问
  • 建网站石家庄电子商务平台