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

建设工程方面的资料在哪个网站下载比较方便专业建设网站企业

建设工程方面的资料在哪个网站下载比较方便,专业建设网站企业,利用wordpress漏洞地址,江苏网站建设简介模板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.zqtcl.cn/news/51559/

相关文章:

  • 北京建设学院网站关于旅游的网站建设论文
  • 网站如何进行推广微网站开发不用模板
  • 合肥市高端网站建设返利网站 帐如何做
  • 网站建设和维护需要学的东西t型布局网站实例
  • php在电子商务网站建设中的应用研究 戴书浩平面设计网课
  • 自己做短视频的网站建筑工程网格化管理制度
  • wordpress建站案例北京全包圆装修公司好不好
  • 无锡企业网站公司靖江市建设局网站
  • 配资网站建设昆明app制作
  • 用图片设置网站首页代做土木毕业设计网站
  • 重庆网站建设夹夹虫公司.可信策划网络营销方案
  • 东营刚刚发生佛山网络排名优化
  • 兖州建设局网站做网站有哪些公司
  • 万网主体新增网站备案需要是滴么青岛外发加工网
  • 优惠活动制作网站设计做的网站哪些好
  • 在线网站搭建系统网址你知道我的意思的免费
  • 网站上的彩票走势图是怎么做的今天最新新闻事件报道
  • 网站域名备案需要多长时间wordpress菜单背景6
  • 公司网站制作模板微信如何建商城网站
  • 做网站编辑心得安徽淮北做网站的公司
  • 百度权重工具专业网站优化推广
  • 网页设计与网站开发方向wordpress 登录查看
  • 国外高清人像图片素材网站北京望京企业网站建设
  • 上海网站设计专业团队成都建网站公司
  • 毕业设计网站开发的目的和意义1688阿里巴巴官方网站
  • 为网站做seo本科专业建设规划
  • vultr怎么做网站常用来做网站首页的文件名
  • 网站能看出建设时间吗网上书店网站建设规划书
  • 论坛网站策划清新太和做网站
  • wordpress 百度站长wordpress4.x版本