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

摄影师如何做网站厦门关键词优化网站

摄影师如何做网站,厦门关键词优化网站,node wordpress,百度seo优化工具gcc的使用 文章目录 gcc的使用 历史遗留问题#xff08;普通用户sudo#xff09; gcc编译过程 预处理#xff08;进行宏替换#xff09; 编译#xff08;生成汇编#xff09; 汇编#xff08;生成机器可识别代码#xff09; 链接#xff08;生成可执行文件或库文件普通用户sudo gcc编译过程 预处理进行宏替换 编译生成汇编 汇编生成机器可识别代码 链接生成可执行文件或库文件 动静态库 动静态库的优缺点 gcc的使用 总结 我们前面已经学习了使用vim来编写代码我们也知道了Linux下的工具都是各自独立的vim用来编写代码我们如何执行代码呢这就需要用到gcc/g了那么话不多说开启我们今天的话题 ✈️ 历史遗留问题普通用户sudo 我们之前在 Linux权限详解 里面遗留了一个问题刚创建的普通用户是不能进行 sudo 操作的。要想使用sudo 操作我们只有先在 root 账号下将对应的 配置文件(sudoers) 进行设置普通用户才能进行sudo操作。 那么我们在root账号下执行 vim /etc/sudoers#进入到设置普通用户sudo的配置文件我们可以看到sudoers文件对于其他组是 不开放读写与执行权限 的若我们在普通用户下执行这个命令 我们发现在普通用户下执行vim命令对sudoers文件操作是看不到内容的。 而我们在root账号下对sudoers文件执行vim我们会发现 如果你打开的sudoers文件没有上面的行号只需要先将模式切换为 末行模式 然后执行 set nu命令即可这样就会显示行号了。 我们进入该文件之后我们向下翻找找到大概第100行左右的位置找到 “Allow root to run any commands anywhere” 这句话。 如果你是第一次打开该文件你会发现在这句话下面的一条语句 root ALL(ALL) ALL这就是root账号下的sudo配置文件仿照上述写法在该条语句下添加 普通用户用户名 ALL(ALL) ALL然后我们保存文件重新进行登录切换为普通用户这个时候我们就可以执行sudo命令了。 这样我们的普通用户就可以使用sudo命令了我们切换回xzy用户查看/etc/sudoers/ ✈️ gcc编译过程 gcc/g是进行编译的工具对于编译的过程无外乎分为这么几个步骤预处理进行宏替换、编译生成汇编、汇编生成机器可识别代码、链接生成可执行文件或库文件。 预处理进行宏替换 预处理的过程包括宏定义文件包含条件编译去注释等。 预处理指令是以#开头的代码行。 选项 “ -E ”该选项的作用是让 gcc 在预处理结束后停止编译的过程。 选项 -O “是指目标文件object”.i文件为已经预处理过的原始程序。 gcc -E xxx.c -o xxx.i#将原文件进行预处理为了得到预处理后的文件我们加上“-o”选项得到目标文件创建一个C的源文件 对该文件进行编写 将该文件进行预处理得到目标文件 我们查看目标文件的内容会发现里面的代码有了800行左右在预处理的过程展开了头文件。 编译生成汇编 在这个阶段中gcc首先要检查代码的规范性、是否有语法错误等以确定代码实际要做的工作在检查无误后gcc把代码翻译为汇编语言。 用户可以直接使用 “-S” 选项来进行查看该选项只进行编译而不进行汇编生成汇编代码。 gcc -S xxx.i -o xxx.s#将-i目标文件进行编译生成汇编代码用-o选项将.s文件保存将-i文件编译为.s文件 使用vim来查看.s的汇编代码 汇编生成机器可识别代码 汇编阶段是把编译阶段生成的 .s 文件转成目标文件。 读者在此可以使用选项 -c 就可以看到汇编代码转化为 .o 的二进制代码。 gcc -c xxx.s -o xxx.o#有汇编文件生成目标文件再由-o接收为.o文件我们使用vim查看.o目标文件 我们打开.o文件之后却是乱码这是因为我们的打开这个文件就是二进制文件是机器代码这种二进制文件并不是以文本的形式来存储的所以用vim打开.o文件我们看到的是乱码。 链接生成可执行文件或库文件 在成功编译之后就进入到了链接阶段。 gcc xxx.o -o xxx#将目标文件进行链接称为可执行文件其中在链接的过程中会把.o文件与库文件进行链接的。我们C语言中所使用的 printf函数、scanf函数等都是在C语言 libc.so.6 库里面 的而头文件stdio.h只是 函数声明。 ✈️ 动静态库 我们在使用gcc进行编译的最后一步链接时会按照系统默认路径 “user/lib” 下进行查找也就是生成的 .o 文件与库文件 libc.so.6 进行链接。 那么我们是如何执行C语言文件的呢我们可以使用 ldd 命令来查看对应可执行程序的库文件 其实我们为什么可以直接运行C语言的代码是因为我们在Linux平台下 已经安装了对应的库文件以及标准头文件 因此平台要支持开发就 必须提前在系统中安装好对应的头文件和库文件 函数的库一般分为 动态库 和 静态库 我们来简单认识一下 静态库是指编译连接时把库文件的代码全部加入到可执行文件当中因此生成的文件比较大但是在运行时也不需要库文件了其 后缀名一般为.a。 动态库与之相反在编译链接过程中没有把代码加入到可执行文件当中而是在程序执行时由运行时 链接文件加载库,这样可以 节省系统的开销。动态库一般后缀名为 “.so”,如前面所述的 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件。 gcc默认生成的二进制程序是动态链接 的可以使用file命令证明。 静态库的工作状态 1、在编译时静态库的目标文件.o文件会被链接到可执行文件中。 2、静态库的函数和数据在可执行文件中是静态的与.o文件进行 静态链接 3、静态库的大小会增加可执行文件的大小因为库的代码会被完整地复制到可执行文件中。 动态库的工作状态 1、在编译时动态库的目标文件.o文件会被编译成共享对象文件.so文件。 2、动态库的函数和数据在运行时才会被加载到内存中。 3、动态库的使用需要运行时的加载和链接过程因此执行速度相对较慢。 4、动态库可以被多个可执行文件共享节省了系统资源。 动静态库的优缺点 动态库优缺点 优点 比较节省资源不会出现太多重复代码 — 磁盘资源内存网络等资源。 缺点 对库的依赖性比较强一旦库丢失所有依赖这个库的程序全部无法运行 静态库的优缺点 优点 不依赖库同类型平台中都可以直接运行使用。 缺点 可执行的程序体积比较大比较浪费资源。 ✈️ gcc的使用 gcc常用的一些选项 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面-S 编译到汇编语言不进行汇编和链接-c 编译到目标代码-o 文件输出到 文件-static 此选项对生成的文件采用静态链接-g 生成调试信息。GNU 调试器可利用该信息。-shared 此选项将尽量使用动态库所以生成文件比较小但是需要系统由动态库.-w 不生成任何警告信息。-Wall 生成所有警告信息。 一般我们编译C语言的代码直接使用 gcc xxx.c -o 运行程序文件名#编译出来直接得到可执行程序✈️ 总结 普通用户想要进行sudo操作需要root账号在sudoers文件里面将该普通用户进行对应的设置重启即可使用sudo指令。gcc是一款编译工具而编译过程无外乎预处理、编译、汇编、链接 这四个步骤gcc也可以单独对这四个步骤进行编译。gcc的一些常用选项例如-c-o等需要多加练习。 如果这篇文章对各位有帮助的话还望三连支持一下博主~~
http://www.sadfv.cn/news/60655/

相关文章:

  • 现在流行的网站开发怎么建立自己的公司网站
  • 知道域名怎么进入网站网站如何申请域名
  • 网站建设平台怎么做爱常德网
  • 黄冈网站建设公司制作网站做网站用什么空间
  • 建筑安全类网站手机网站 软件
  • 宁德网站推广长沙网站的建设
  • 中合网络网站建设有人百度看片吗
  • 彩票网站怎么做系统惠州 家具 网站上线
  • 做化工资讯的网站星空 电影 在线观看
  • 免费网站开发合同阿里巴巴网站建设规划
  • 部门网站建设的目的和意义云空间的网站如何做
  • 网站建设内部下单流程安居客看房网
  • 江门网站制作流程python 网站开发 linux
  • 站群cms源码不适合学编程的人
  • 网站开发的广告词网站扫描怎么做
  • 关于网站seo优化中文搜索引擎有哪些平台
  • eclipse做购物网站潍坊网站制作报价
  • 企业网站php源码免费下载wordpress实现商城
  • 网站如何优化推广百度seo引流怎么做
  • 网站的推广方法有哪些wordpress 多余p标签
  • 建立链接网站模板网站建设维护方案
  • 智慧团建网站进不去贸易公司注册条件
  • 在线获取颜色代码网站建设银行业务管理中心网站
  • 电子商务网站建设与管理 项目任务 教材梯子国外服务器免费
  • 网站制作一键生成wordpress 数据库填写
  • 苏州高端网站制作官网传媒公司起名大全
  • 口碑好的定制网站建设公司wordpress 多梦
  • 宁波网站建设建站厂家桂林本地网站
  • 高新区做网站小公司做网站赚钱吗
  • 做网站php做电影网站被抓