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

上海品牌网站建设公司外国做的福利小视频在线观看网站

上海品牌网站建设公司,外国做的福利小视频在线观看网站,wordpress展示产品,网页设计培训心得本文已收录至《Linux知识与编程》专栏#xff01; 作者#xff1a;ARMCSKGT 演示环境#xff1a;CentOS 7 目录 前言 正文 gcc/g常用命令 自定义可执行程序名命令-o 预处理指令-E 编译指令-S 汇编指令-c 链接指令gcc 命令巧记口诀 链接库 动态库-动态链接 静态库… 本文已收录至《Linux知识与编程》专栏 作者ARMCSKGT 演示环境CentOS 7      目录 前言 正文 gcc/g常用命令 自定义可执行程序名命令-o 预处理指令-E 编译指令-S 汇编指令-c 链接指令gcc 命令巧记口诀 链接库 动态库-动态链接 静态库-静态链接 动静态库对比 其他指令 声明与定义分离的编译指令 C99标准编译指令 gcc和g的联系与区别 最后 前言 在Windows环境下我们我们使用VS编译器可以写代码然后运行编译代码所成的程序但在Linux系统下我们写的C/C代码需要通过gcc(C语言)和g(C语言)编译器才能生成可执行程序所以学习gcc和g是非常重要的 正文 在实际的使用中单纯的编译执行C和C文件gcc和g操作几乎相同但是内部工作原理是截然不同的所以在后面的讲解中会以gcc为例进行讲解g操作与之相同 如果您在使用时系统报错bash: gcc(或g): command not found这是因为你的Linux系统没有安装gcc或g导致的使用命令 yum -y install gcc //安装gcc yum -y install g //安装g 一般Linux系统是安装了gcc的但g需要手动安装 gcc/g常用命令 我们在使用中如果想利用对应文件生成可执行程序命令是 gcc [-选项] [.c文件] g [-选项] [.cpp文件] 如果不加(除o)的其他选项那么默认直接生成可执行程序程序名为a.out我们输入命令 ./a.out 就可以执行这个程序 自定义可执行程序名命令-o 命令 gcc [.c文件] -o [自定义名称] //建议写法 gcc -o [自定义名称] [.c文件] //这种写法也是可以的但是不建议 这里需要注意的是-o选项后面紧跟的必须是自定义名称可以想象-o [自定义名称] 是固定组合不能颠倒顺序乱写 g也可以通过-o选项生成自定义名称的可执行程序 我们都知道源文件变成可执行程序会经过四个阶段预处理-编译-汇编-链接库gcc/g编译时如果不加选项是直接执行这四步如果我们想看其中一步执行后的文件那么就需要对应的选项。 预处理指令-E 指令 gcc -E [.c文件] -o [文件名].i 预处理又称预编译预处理后的文件其后缀我们默认是 .i 而且在这里我们如果想获得预处理后的代码文件还需要指定一个文件名如果不使用-o指定文件名gcc会将预处理后的代码输出到屏幕上只有指定文件名才能保存为文件   代码的预处理会将头文件展开替换宏删除注释并执行条件编译等操作这样才能生成一个纯C语言的代码文本方便后面继续转换 使用vim打开后里面都是预处理后的代码 这里我们使用-E选项是让编译器执行完预处理就停下  编译指令-S 指令 gcc -S [.c文件/.i预处理文件] //默认生成的文件与编译前的文件名相同但是后缀为.s gcc -S [.c文件/.i预处理文件] -o [文件名].s //指定生成汇编代码的文件名这里如果我们不使用-o选项编译器会生成与被编译文件名一样的文件但后缀为.s且这里既可以对.c代码文件编译也可以对预处理文件.i进行编译只不过对.c文件进行编译会先执行预处理然后再执行编译执行完编译就停下而预处理文件则是直接进行编译然后停止   编译会对预处理代码进行语法词法并和语义分析并进行符号汇总等然后转换为汇编代码。 vim打开编译的文件里面是汇编代码和一些符号标记 汇编指令-c 指令 gcc -c [.c文件/.i预处理文件/.s编译文件] //默认生成与被执行文件的文件名相同后缀为.o的二进制文件 gcc -c [.c文件/.i预处理文件/.s编译文件] -o [文件名].o 这里如果我们不使用-o选项编译器会生成与被编译文件名一样的文件但后缀为.o且这里既可以对.c代码文件.i代码文件和.s汇编代码文件进行汇编只不过对.c文件进行编译会先执行预处理然和编译然后执行汇编后就停下.i文件会先执行编译再执行汇编就停下.s文件则直接进行汇编然后停下   汇编是将汇编代码转换为二进制汇编文件且生成符号表这里的二进制文件通过file指令查看是elf格式通过vim打开会显示一片乱码  我们如果想查看这个文件需要通过指令 readelf -a [二进制文件.o]  有需要的小伙伴如果缺失这个功能可以通过yum下载指令 yum -y install readelf 链接指令gcc 指令 gcc [.c/.i/.s/.o文件] //默认生成a.out可执行程序(可使用-o自定义名称) 链接是形成程序的最后一步如果前面缺少一步就会先执行没有进行的步骤 链接会进行合并段表将符号表进行合并和重定位等然后会将程序与运行所需要的各种函数和库函数链接起来(编译器默认动态链接)生成可执行程序的格式是elf也可以通过readelf指令查看 命令巧记口诀 指令 ESc (键盘上的退出键)文件后缀 iso (镜像文件格式) 链接库 我们都知道每种语言都有属于自己的库比如C语言的stdio标准库等C有iostream库当程序在在运行中调用库函数时就会通过地址去库中找这个函数进行调用在Linux系统中标准库在 /usr/include/ 目录下在这个目录下是Linux系统的各种C语言动态库除了动态库的概念外还有静态库的概念我们慢慢介绍 Linux系统下的各种库 库文件格式为lib文件名.a/so识别时去掉lib和后缀就是文件名 动态库的文件格式为lib文件名.so 静态库的文件格式为lib文件名.a   在Linux系统中指令也是可执行程序都是C语言写的依赖库 动态库-动态链接 动态库又称共享库动态库是动态链接的库如果程序中有该库的函数和引用则会在调用位置留下一个链接程序运行调用该函数时就会通过这个链接找到对应的库函数并执行这样动态库只需要存一份代码就可以实现多个程序的调用   链接就是将代码中使用的库函数与对应的库链接(将调用的库函数的文件地址拷贝到文件中)。 动态库一旦被删掉那么所有依赖该库的程序就无法执行了动态链接只是拷贝库的地址执行时需要跳转到库中执行。   在Linux系统下gcc和g链接是默认动态链接库的如果我们想查看文件的链接方式指令为 ldd [文件/程序] //查看程序链接库方式 打开后会显示各种链接状态且可以看到动态链接的文件后缀都是.so 通过file指令还可以查看可执行程序的链接情况  这也说明Linux是默认动态链接的动态链接的好处在于编译出来的程序体积小但是跨平台能力差 静态库-静态链接 静态库采用静态链接的方式静态链接与动态链接不同之处在于动态库在调用库函数时根据地址去库中寻找并调用而静态链接则是将调用的库函数拷贝到自己的代码文件中相当于本地存储后续直接执行本地代码文件不依赖任何动态库 如果需要静态库编译代码指令是 gcc [-选项] [.c文件] -static 可以在预处理-编译-汇编-链接这四个阶段选择静态链接因为链接是最后一步 Linux的静态库需要手动安装指令是 yum -y install glibc-static //下载静态库  ldd指令显示文件没有链接任何库file指令显示可执行程序是静态链接  而且静态库链接因为将库代码拷贝到了本地文件其文件体积将会变得非常大所以Linux中默认动态链接的方式 动静态库对比 区别动态库静态库库函数调用方式通过链接去库中调用在本地代码中调用跨平台性与依赖性需要依赖库运行跨平台性差不需要依赖库跨平台性良好空间占用空间占用小空间占用大加载速度需要根据链接去找库函数然后执行直接执行本地库函数代码优点 可以实现不同进程间的资源共享对于函数的升级只需要替换动态库文件不需要重新编译程序可以控制是否加载动态库不调用函数时就不加载 所需函数直接拷贝至程序中运行速度快程序运行无需依赖库便于移植和跨平台  缺点 需要调用函数加载速度较慢程序运行需要依赖动态库 对于函数的升级需要重新进行编译同一份代码可能出现重复拷贝的情况浪费空间 其他指令 声明与定义分离的编译指令 gcc [-选项] [头文件.h] [实现代码.c] [主函数.c] 声明与定义分离只需要将程序的所有相关文件列入gcc中然后正常编译即可 C99标准编译指令 gcc [-选项] [.c文件] -stdc99 //以C99标准编译代码 当我们想要C99标准语法时可以使用该指令编译 gcc和g的联系与区别 gcc和g都是GNU一个组织的编译器。  1、对于.c后缀的文件,gcc把它当做是C程序g当做是C程序 2、对于.cpp后缀的文件gcc和g都会当做c程序。 3、编译阶段g会调用gcc; 4、连接阶段通常会用g来完成这是因为gcc命令不能自动和c程序使用的库连接。 最后 Linux编译器gcc/g的介绍到这里就结束了相信学完的老铁肯定想动手写两个程序吧gcc和g如此强大的功能来自于GNU组织的开发让我们可以在Linux上看到代码的底层知识本节也介绍了动态库和静态库的区别和优缺点相信大家以后能对库进行合理利用开发出好的作品 本次Linux编译器gcc/g的基本知识就介绍到这里啦希望能够尽可能帮助到大家。 如果文章中有瑕疵还请各位大佬细心点评和留言我将立即修补错误谢谢 其他文章阅读推荐 Linux基础指令-CSDN博客 Linux权限的基本知识-CSDN博客 Linux编辑器vim-CSDN博客 欢迎读者多多浏览多多支持!​​​​​​​
http://www.dnsts.com.cn/news/65000.html

相关文章:

  • 大连做网站公司哪家好wordpress按钮无法显示
  • 本地主机做网站服务器宁波外贸公司有哪些
  • 举报个人备案网站做经营性给网站做cdn
  • 资阳市网站seo做网站 如何注册公司
  • 做购物网站那个好河南网站备案代理
  • 怎么自己创建网站或者app宁波营销型网站建设
  • 给一个网站做需求分析网页制作模板
  • 网站建设推广方案策划书一个新的app如何推广
  • 辛集网站建设哪家好宣传型网站功能定位
  • 云南企业网站建设有限公司做html5视频网站
  • 江苏省通信建设交易中心网站蚌埠网站优化
  • 策划公司网站新民网站建设价格咨询
  • 做网站便宜500个企点qq大概多少钱
  • 科技网站 网站建设互联网营销师国家职业技能标准
  • 碧海蓝天网站手机网站搜索框代码
  • 揭阳网站建设公司哪个好只想怎样建设自己的销售网站
  • 赚钱的网站开发项目郑州网站制作生产厂商定制
  • 苏州专业做网站较好的公司有哪些大型网站开发管发
  • 豪车网站建设背景广东深圳地图全图
  • 网站设计上海济南建设工程有限公司
  • 网站互动怎么做wordpress拖动实现
  • 门户网站建设的平台wordpress 读取pdf
  • 查公司备案网站备案十堰建设网站
  • 佛山优化网站公司海尔集团网站是怎么做的
  • wordpress主题淘宝客上海seo外包公司
  • 海丰网站建设白宫 wordpress
  • 企业网站模板php建设银行河北省分行网站
  • 重庆网站建设的意义网站如何做h5动态页面
  • 网站建设平台排名非法集资罪提供网站建设
  • wordpress网站专题学生作业网站