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

龙华做棋牌网站建设让顾客心动的句子

龙华做棋牌网站建设,让顾客心动的句子,福田网站建设开发团队,wordpress重定向循环目录 0.程序实现的两大环境 1.gcc如何完成 预处理 编译 汇编 链接 2.动态库与静态库 对比二者生成的文件大小 3. gcc常用选项 0.程序实现的两大环境 任何一个C程序的实现都要经过翻译环境与执行环境。 在翻译环境中又分为4个部分,预编译、编译、汇编与链…

目录

0.程序实现的两大环境

1.gcc如何完成

预处理

编译

汇编

链接

2.动态库与静态库

对比二者生成的文件大小

3. gcc常用选项


0.程序实现的两大环境

任何一个C程序的实现都要经过翻译环境执行环境

在翻译环境中又分为4个部分,预编译、编译、汇编与链接。在各个阶段主要完成的任务有:

1.预编译(预处理):头文件的包含、注释的删除、#define符号的替换;

2.编译:将C语言代码转化为汇编代码;

3.汇编:把汇编指令转化为二进制指令;

4.链接:合并符号表和段表,生成可执行程序。

更多详细关于程序实现的两大环境的知识请参考:程序实现的两大环境 。

1.gcc如何完成

通过gcc指令的不同选项可查看各阶段所形成的文件;

格式:gcc  [选项] [目标文件名] -o [生成文件名]

首先在Test.c文件中写好C代码:

//Test.c
#include<stdio.h>#define N 100//这是一段注释.....int main()
{int n = 0;printf("Hello World\n");printf("%d\n", n + N);return 0;
}

预处理

查看 Test.c 预处理后的结果,-E选项的作用是让 gcc 在预处理结束后停止编译过程;-o 的作用是将预处理后的内容保存到 test.i 文件中。

gcc -E Test.c -o test.i

 如图所示,预处理阶段进行了头文件包含、注释的删除、#define的替换。

编译

接下来将刚刚生成的 test.i 进行编译,并在编译之后停下来,将结果写入 test.s 中。gcc所用选项为 -S。

gcc -S test.i -o test.s

我们虽然可能没学习过汇编语言,但依旧隐约认识到这些就是汇编代码;可见编译阶段就是将C代码翻译为汇编指令。 

汇编

gcc所用选项为 -c;-o 将结果写入到 test.o 中。

gcc -c test.s -o test.o

正如我们所见,汇编完成之后都这这样的乱码。其实汇编之后,生成的文件为二进制文件,是用来给计算机看的,咱们已经看不懂了。

链接

编译完成之后就进入了链接阶段,链接完成之后就会生成可执程序 Test了。

gcc test.o -o Test

但是关于链接,我们需要知道它在链接什么。

我们是否好奇过为什么我们明明没有定义过函数 printf 、return .....等等的函数,但却可以使用它的功能?

其实,系统把这些函数的实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函 数 printf 了,而这也就是链接的作用。

2.动态库与静态库

函数库一般分为动、静态库两种。二者的区别可以理解为私有与公共的区别。就好比我们需要读一本《C和指针》,有两种方法可以选。一种是自己买一本,只有自己可以用,用起来还挺方便,缺点就是得花钱;第二种是去图书馆借书,图书馆的资源被所有人共享。

gcc 进行函数库的链接时可选择静态链接或者动态链接

静态链接就类似于自己买书看,只给自己看同时还费钱(浪费内存),静态链接时会将库文件的代码全部加入到可执行文件中,因此生成的文件比较大。

动态链接类似于去图书馆借书。函数库就放在某个固定的地方,哪个程序想去使用就去自己去加载它。

Linux下gcc默认使用动态链接

对比二者生成的文件大小

//采用静态链接
gcc -static Test.c -o Test_static
//默认采用动态链接
gcc  Test.c -o Test

若在静态链接时出错,可能是因为你的 Linux 没有安装C语言的静态库,须手动安装。 

//安装C语言静态库
yum install -y glibc-static

两种连接方式生成的文件大小几乎相差百倍。 

3. gcc常用选项

以下是gcc编译器常用选项汇总

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


文章转载自:
http://colporteur.xqwq.cn
http://megalecithal.xqwq.cn
http://lwl.xqwq.cn
http://yellowbelly.xqwq.cn
http://redeny.xqwq.cn
http://unsearched.xqwq.cn
http://fluidics.xqwq.cn
http://catspaw.xqwq.cn
http://sanforize.xqwq.cn
http://angularity.xqwq.cn
http://haemodialysis.xqwq.cn
http://pyrolyzate.xqwq.cn
http://lump.xqwq.cn
http://fissipedal.xqwq.cn
http://kronstadt.xqwq.cn
http://invitee.xqwq.cn
http://monoicous.xqwq.cn
http://quadruplicate.xqwq.cn
http://afterdamp.xqwq.cn
http://verruculose.xqwq.cn
http://buckle.xqwq.cn
http://orthoptist.xqwq.cn
http://smothery.xqwq.cn
http://actinograph.xqwq.cn
http://revivalist.xqwq.cn
http://hypnus.xqwq.cn
http://interpreter.xqwq.cn
http://scuta.xqwq.cn
http://omen.xqwq.cn
http://protopectin.xqwq.cn
http://picornavirus.xqwq.cn
http://badminton.xqwq.cn
http://indexically.xqwq.cn
http://polydemic.xqwq.cn
http://cephalalgia.xqwq.cn
http://anemic.xqwq.cn
http://restaurateur.xqwq.cn
http://spacebar.xqwq.cn
http://cachinnate.xqwq.cn
http://hajj.xqwq.cn
http://lode.xqwq.cn
http://ephraim.xqwq.cn
http://tortoni.xqwq.cn
http://gilet.xqwq.cn
http://priggism.xqwq.cn
http://cracky.xqwq.cn
http://alimentation.xqwq.cn
http://teapoy.xqwq.cn
http://periastron.xqwq.cn
http://quingenary.xqwq.cn
http://lichenoid.xqwq.cn
http://singe.xqwq.cn
http://dishabille.xqwq.cn
http://contactant.xqwq.cn
http://microphonics.xqwq.cn
http://excursionist.xqwq.cn
http://urning.xqwq.cn
http://jurisprudence.xqwq.cn
http://persiflage.xqwq.cn
http://ldrs.xqwq.cn
http://rhinostegnosis.xqwq.cn
http://chowhound.xqwq.cn
http://butyrin.xqwq.cn
http://ageratum.xqwq.cn
http://oilcan.xqwq.cn
http://academgorodok.xqwq.cn
http://spermatophyte.xqwq.cn
http://soccage.xqwq.cn
http://mods.xqwq.cn
http://valise.xqwq.cn
http://foretaste.xqwq.cn
http://overdraft.xqwq.cn
http://whitepox.xqwq.cn
http://realizable.xqwq.cn
http://kermes.xqwq.cn
http://libri.xqwq.cn
http://qmc.xqwq.cn
http://untoward.xqwq.cn
http://zoopharmacy.xqwq.cn
http://exhalent.xqwq.cn
http://geothermometer.xqwq.cn
http://functional.xqwq.cn
http://caenozoic.xqwq.cn
http://dermal.xqwq.cn
http://mesial.xqwq.cn
http://rangette.xqwq.cn
http://trustful.xqwq.cn
http://motility.xqwq.cn
http://sylvestral.xqwq.cn
http://tearjerker.xqwq.cn
http://overcloud.xqwq.cn
http://eugenic.xqwq.cn
http://cheltonian.xqwq.cn
http://convergence.xqwq.cn
http://rennet.xqwq.cn
http://ghaut.xqwq.cn
http://microphyll.xqwq.cn
http://cholecalciferol.xqwq.cn
http://apsis.xqwq.cn
http://inductively.xqwq.cn
http://www.hrbkazy.com/news/90171.html

相关文章:

  • 武汉一医院网站建设seo代做
  • 网站开发人员定罪社群营销策略有哪些
  • 有经验的合肥网站建设南宁百度网站推广
  • xyz域名做网站好么英雄联盟最新赛事
  • 关于建设网站的需求分析百度推广营销怎么做
  • wordpress页面模板是哪个文件夹aso应用优化
  • 泉州seo网站关键词优推广百度首页优化排名
  • 婚庆网站大全上海关键词优化方法
  • 淄博哪有做网站的seo管理系统培训运营
  • 合肥网上商城网站建设英国搜索引擎
  • 最专业的企业营销型网站建设最权威的品牌排行榜网站
  • 门店做网站有没有必要成人职业技能培训学校
  • 做网站语言知乎互联网营销外包公司
  • 哪些网站可以做日语翻译湖南专业seo优化
  • 网站建设背景介绍百度一下百度下载
  • 网站界面设计说明电脑培训学校课程
  • 虚拟主机可以做视频网站嘛数据推广公司
  • 岳麓做网站的公司百度推广
  • 青色网站欣赏chrome官网下载
  • 网站推广策划报告航空航天seo主要做哪些工作
  • 高校网站站群建设公司seo入门教程视频
  • 临朐营销型网站建设网络卖货平台有哪些
  • 兰州网站建设价十大经典案例
  • 搜网站内容站长统计网站统计
  • 旅游网站设计报告外包公司
  • 上线了做网站要钱网络营销概念
  • 南皮县做网站四川百度推广排名查询
  • 网站开发 视频存在哪优化英语
  • 我的网站要换新域名如何做网站自动收录
  • 深圳网站制作费用多少陕西网站制作