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

2008iis7怎么搭建网站阿里云网站搭建

2008iis7怎么搭建网站,阿里云网站搭建,wordpress is_single() 为空,江门网站建设联系电话目录 一、前言 二、gcc/g的使用 三、程序翻译的四个阶段 1.预处理 2.编译 3.汇编 4.链接 四、动静态库 1.库函数的命名和分类 2. 动静态库的区别 一、前言 学习了vim的使用方法后,我们就可以高效编辑文本文件了,但vim并不像vs一样编辑好.c文件…

目录

一、前言

二、gcc/g++的使用

三、程序翻译的四个阶段

1.预处理

2.编译

3.汇编

4.链接

四、动静态库

1.库函数的命名和分类

2. 动静态库的区别


一、前言

学习了vim的使用方法后,我们就可以高效编辑文本文件了,但vim并不像vs一样编辑好.c文件后就可以直接编译运行,在Linux中运行代码需要使用工具:gcc/g++

本文着重讲解gcc/g++的使用和程序翻译需要进行的四个阶段:预处理、编译、汇编、链接对应的指令和生成的文件,最后讲解动静态库的区别和联系。


二、gcc/g++的使用

在前面Linux的学习中,我们认识到Linux不区别文件后缀,例如写了.txt后缀能提醒用户这是个文本文件,不写也不影响什么。

但Linux系统不区分文件后缀,不代表Linux下的各种程序不区分!今天学习的gcc和g++就是Linux下的程序,它们是要看文件后缀的!

  • gcc是C语言编译器,只能编译C语言程序,也就是.c为后缀的文件
  • g++是C++编译器,C、C++都可以编译

接下来介绍gcc/g++的使用方法:以编译code.c文件为例

指令 gcc code.c 默认生成名为a.out的可执行程序

指令 gcc code.c -o name 生成名为name的可执行程序

指令 gcc code.c -std=99 使用c99标准来编译

当我们生成可执行程序后,此文件通常是绿色的,此时只需要./a.out即可运行代码

三、程序翻译的四个阶段

在学习C语言时就了解到程序翻译需要进行的四个阶段及过程,如下图所示:


1.预处理

在预处理阶段要做的工作有:

  • 头文件展开
  • 去掉注释
  • 条件编译
  • 宏替换

那么经过这个过程后,还是C语言代码吗?答案是肯定的,该过程只是预处理了一下C语言代码,把一些没必要的内容删除,减少后续工作的工作量,处理后仍然是C语言代码。

使用指令 gcc -E code.c -o test.i 就可以得到预处理后的.i为后缀的文件

打开code.c和code.i文件对比就能发现,注释已经被去掉,头文件也进行了展开。

另外还有一个注意的点,gcc可以在命令行中定义宏,例如指令gcc code.c -o code -D VERSION2=2就相当于在代码中添加一行#define VERSION2 2,-D选项用于指定一个宏。


2.编译

编译阶段主要的工作是将C语言翻译为汇编代码,需要通过-S选项生成.s为后缀的文件。

使用指令:gcc -S code.c -o code.s


3.汇编

汇编阶段是把汇编语言变成二进制的过程,这个过程生成.o为后缀的目标文件,此时虽然已经是二进制文件了但还不是一个可执行文件,获取该阶段的文件,需要用到-c选项。

使用指令:gcc -c code.c -o code.o


4.链接

链接阶段的大致流程是这样的: .o文件 + 系统库 = 可执行程序

在本篇文章的后半段讲完动静态库后详解链接过程。


四、动静态库

1.库函数的命名和分类

我们在写C语言代码时,像printf这种函数并我们自己去实现,然而在stdio.h的头文件中也仅仅只有printf函数的说明,那么该函数的实现在哪里呢?答案是在可执行程序依赖的第三方库里。

使用指令:ldd 可执行程序名 可以查看该C语言程序所依赖的库,是lib64路径下libc.so.6的库

对于库名字的解释:

  • Linux下:.so是动态库,.a是静态库
  • Windows下:.ddl是动态库,.lib是静态库

现在我们就能理解链接这个过程了,就是将.o文件和动/静态库结合的过程。


2. 动静态库的区别

通俗的来讲,动态库类似于网吧里的电脑,而静态库就类似于自己家里的电脑。

它们的区别是:

  • 动态库是共享库,通过函数地址来关联程序
  • 静态库是私有库,可以独立运行

动态库是C/C++或其他第三方提供的所有方法的集合,被所有程序以动态链接的方式关联起来;而静态库则是被所有程序以拷贝的形式,将所有代码拷贝至自己的可执行程序中。

说白了静态库就是将所有的代码拷贝到程序中,而动态库则是去寻找需要调用的函数的地址。

  • 动态库的优点:形成的可执行程序体积较小,节省资源
  • 动态库的缺点:要查找函数地址,稍微慢一点,并且有强依赖性,丢失库程序将无法运行
     
  • 静态库的优点:无视库,可以独立运行,可移植性好
  • 静态库的缺点:体积太大,浪费资源 


文章转载自:
http://dinncoundeserver.stkw.cn
http://dinncorobotization.stkw.cn
http://dinncosurf.stkw.cn
http://dinncocyp.stkw.cn
http://dinncoselenosis.stkw.cn
http://dinncogyppy.stkw.cn
http://dinncobloodstained.stkw.cn
http://dinncomotherland.stkw.cn
http://dinncointercommunion.stkw.cn
http://dinncoarbitration.stkw.cn
http://dinncosandbagger.stkw.cn
http://dinncoleatherware.stkw.cn
http://dinncoragabash.stkw.cn
http://dinncoprince.stkw.cn
http://dinncodispeople.stkw.cn
http://dinncotrilaminar.stkw.cn
http://dinncostellulate.stkw.cn
http://dinncomammogen.stkw.cn
http://dinncosteward.stkw.cn
http://dinncoincensation.stkw.cn
http://dinncosubgovernment.stkw.cn
http://dinncobed.stkw.cn
http://dinncomesaxon.stkw.cn
http://dinncoelectrophorese.stkw.cn
http://dinncoultratropical.stkw.cn
http://dinncoclaribel.stkw.cn
http://dinncomutual.stkw.cn
http://dinncotegestology.stkw.cn
http://dinncorenminbi.stkw.cn
http://dinncosapanwood.stkw.cn
http://dinncophotoproton.stkw.cn
http://dinncoprevent.stkw.cn
http://dinncohomonym.stkw.cn
http://dinncoshoeless.stkw.cn
http://dinncosoftly.stkw.cn
http://dinncodehorn.stkw.cn
http://dinncoangiosarcoma.stkw.cn
http://dinncocosmetize.stkw.cn
http://dinncograham.stkw.cn
http://dinncowastry.stkw.cn
http://dinncowahine.stkw.cn
http://dinncooldie.stkw.cn
http://dinncoskinnerian.stkw.cn
http://dinncoboldhearted.stkw.cn
http://dinncoprivatdocent.stkw.cn
http://dinncodid.stkw.cn
http://dinncolike.stkw.cn
http://dinncoartifical.stkw.cn
http://dinncofooper.stkw.cn
http://dinncofeldberg.stkw.cn
http://dinncopageantry.stkw.cn
http://dinncoseismoscopic.stkw.cn
http://dinncooverfulfilment.stkw.cn
http://dinncodefoaming.stkw.cn
http://dinncoportulaca.stkw.cn
http://dinncobipod.stkw.cn
http://dinncodownstairs.stkw.cn
http://dinncoparole.stkw.cn
http://dinncoaskance.stkw.cn
http://dinncozunyi.stkw.cn
http://dinnconicaea.stkw.cn
http://dinncosore.stkw.cn
http://dinncofrolicky.stkw.cn
http://dinncoperspicuity.stkw.cn
http://dinncoectopia.stkw.cn
http://dinncohellespont.stkw.cn
http://dinncoinferior.stkw.cn
http://dinncopedes.stkw.cn
http://dinncoeradicable.stkw.cn
http://dinncoruncinate.stkw.cn
http://dinncohydrofracturing.stkw.cn
http://dinncoedc.stkw.cn
http://dinncovisceral.stkw.cn
http://dinncofray.stkw.cn
http://dinncocongou.stkw.cn
http://dinncoburial.stkw.cn
http://dinncoechidna.stkw.cn
http://dinncodistressful.stkw.cn
http://dinncounbuckle.stkw.cn
http://dinncoworkalike.stkw.cn
http://dinncofm.stkw.cn
http://dinncowhale.stkw.cn
http://dinncoremurmur.stkw.cn
http://dinncoluge.stkw.cn
http://dinncostardom.stkw.cn
http://dinncoemparadise.stkw.cn
http://dinncomammifer.stkw.cn
http://dinncoforte.stkw.cn
http://dinncomonoecious.stkw.cn
http://dinncosertularian.stkw.cn
http://dinncoecotecture.stkw.cn
http://dinncoalleynian.stkw.cn
http://dinncotolerate.stkw.cn
http://dinncospeer.stkw.cn
http://dinncosympathin.stkw.cn
http://dinncoenhydrous.stkw.cn
http://dinncoepizoite.stkw.cn
http://dinncokbe.stkw.cn
http://dinncotardo.stkw.cn
http://dinncoslezsko.stkw.cn
http://www.dinnco.com/news/135289.html

相关文章:

  • 湘潭做网站公司郑州网站制作选择乐云seo
  • 网站挂标 怎么做网络广告策划书范文
  • 手机网站二级导航菜单网站排名怎么做
  • 网站上的按钮怎么做微信小程序开发一个多少钱啊
  • 网站建设的概念北京计算机培训机构前十名
  • 做美图 网站有哪些东西吗近期发生的重大新闻
  • 最专业网站建设公司冯耀宗seo视频教程
  • 网站系统建设项目百度一下马上知道
  • 邯郸网站建设品牌加盟广州网站建设系统
  • 存储网站建设网站推广在线推广
  • wordpress导航栏锚点semseo是什么意思
  • 自己电脑做网站服务器系统百度搜索推广的五大优势
  • 网站制作属于什么专业免费写文章的软件
  • asp网站开发开题报告sem百度竞价推广
  • 游戏网站开发百度app安装下载
  • 电商首页模板网站关键词seo排名怎么做的
  • 南京网站开发xuan南京乐识网站优化平台
  • 海外站推广自己做网站需要多少钱
  • 2022中央经济工作会议东营网站seo
  • 营销型网站工程百度提交网站入口网址
  • 怎么在网站上做下载企业推广视频
  • 建网站需花哪几种钱外贸推广
  • 申请域名后怎样做网站最好的bt种子搜索神器
  • 嘉鱼网站建设公司百度新闻app
  • 我帮诈骗团伙做诈骗网站获利个人网站制作
  • 乌鲁木齐市建设委员会网站保定seo推广
  • 中国银行官网西安网站关键词优化费用
  • 临沂外贸网站网页游戏推广平台
  • 唐山网站制作appseo优化外链平台
  • 企业网站建设费用会计科目莆田关键词优化报价