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

制作一个简单网站的代码最安全的软件下载网站

制作一个简单网站的代码,最安全的软件下载网站,网站开发都用什么语言,逻辑网络设计文章目录 一、Linux编译器-gcc/g使用1.1 背景知识1.2 gcc如何完成1.3 函数库1.4 gcc选项 二、linux调试器-gdb使用2.1 背景2.2 开始使用 总结 ヾ(๑╹◡╹)#xff89; 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)#xff89; 一、Linux编译器-gcc/g使用 1.1 背景… 文章目录 一、Linux编译器-gcc/g使用1.1 背景知识1.2 gcc如何完成1.3 函数库1.4 gcc选项 二、linux调试器-gdb使用2.1 背景2.2 开始使用 总结 ヾ(๑╹◡╹) 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹) 一、Linux编译器-gcc/g使用 1.1 背景知识 程序文本——机器语言二进制 预处理 进行宏替换)编译生成汇编)汇编生成机器可识别代码连接生成可执行文件或库文件) 为什么计算机只认识二进制 组成计算机的各种组件只认识二进制。 1.2 gcc如何完成 格式 gcc [选项] 要编译的文件 [选项] [目标文件] C文件gcc 文件-./a.out【g 文件-./a.out 】【因为c兼容C语言】 C文件g文件-./a.out 【如果没有g编译器安装gcc-c即可】 gcc/g 文件1 -o 文件2 —— 此时就不会生成a.out文件而是文件2 预处理(进行宏替换) 预处理功能主要包括宏替换,头文件展开,条件编译,去注释等。预处理指令是以#号开头的代码行。实例: gcc –E hello.c –o hello.i选项“-E”,该选项的作用从现在开始进行程序的翻译gcc 在预处理结束后停止编译过程。选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序 查看.i文件首先vim hello.c 然后在末行模式输入 vs hello.i 就可以进入.i文件 编译器内部都必须通过一定方式来知道你包含的头文件的所在路径 预处理完之后C语言代码还是C语言代码 编译生成汇编语言 在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。实例: gcc –S hello.i –o hello.s【也可以直接从.c文件开始翻译到.s文件】 汇编生成机器可识别代码 汇编阶段是把编译阶段生成的“.s”文件【汇编语言】转成目标文件【可重定向二进制文件.o/.obj】“-c”就可看到汇编代码已转化为“.o”的二进制目标文件实例: gcc –c hello.s –o hello.o 【所有的包含头文件的操作本质上是想使用头文件所声明的方法例如输入输出接口等】 以上操作仅仅编译了自己写的代码【仅仅这个文件是没有办法进行运行/.hello.o】 我们代码中所需要的printf在哪里在C标准库中。 我们代码中使用了printf如何和目标的printf产生联系【链接的过程】 【ESc】【iso】 链接生成可执行文件或库文件 在成功编译之后,就进入了链接阶段。实例: gcc hello.o –o hello 【这一步就有了链接的过程就形成了可执行文件】 ldd 可执行文件【此时就可以看到所需要的库】 头文件给我们提供了可以使用的方法所有的开发环境具有语法提示本质上是头文件帮我们搜索的。【类似于我们平常写代码的头文件】 库文件给我们提供了可以使用的方法的实现以供链接形成我们自己的可执行程序。【类似于我们平常写的.c/.cpp文件】 1.3 函数库 在这里涉及到一个重要的概念:函数库 我们的C程序中并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢? 答案:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函数“printf”了,而这也就是链接的作用 函数库一般分为静态库和动态库两种 静态库是指编译链接时【静态链接】,把库文件的代码全部**加入到可执行文件中**,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为linux“.a”windows “.lib”动态库与之相反,在编译链接时【动态链接】并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般**后缀名为linux“.so”windows.dll,**如前面所述的 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件,如下所示。 gcc hello.o –o hellogcc默认生成的二进制程序是动态链接的这点可以通过 file 命令验证。file 链接后的可执行文件可以查看可执行文件的构成【默认情况下形成的可执行文件是动态链接的】gcc 文件 -o 可执行文件 【动态链接】 gcc 文件 -o 可执行文件 -static 【静态链接】【静态链接的可执行文件是非常大的所以我们是用默认的动态链接】静态库编译软件包yum install glibc-static 【C语言】 yum install libstdc -static【C】 静态库和动态库优缺点 动态链接库优点大家共享一个库可以节省资源 缺点如果库缺失会导致几乎所有程序失效静态链接库优点不依赖任何库程序可以独立执行 缺点浪费资源 1.4 gcc选项 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面-S 编译到汇编语言不进行汇编和链接-c 编译到目标代码-o 文件输出到 文件-static 此选项对生成的文件采用静态链接-g 生成调试信息。GNU 调试器可利用该信息。-shared 此选项将尽量使用动态库所以生成文件比较小但是需要系统由动态库.-O0-O1-O2-O3 编译器的优化选项的4个级别-O0表示没有优化,-O1为缺省值-O3优化级别最高-w 不生成任何警告信息。-Wall 生成所有警告信息。 gcc选项技巧 ESc,iso 二、linux调试器-gdb使用 2.1 背景 程序的发布方式有两种debug模式和release模式Linux gcc/g出来的二进制程序默认是release模式【默认生成的可执行文件是无法调试的。-g】【debug才能调试】要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项 【gcc 文件 -o 可执行文件 -g】【调试的可执行文件体积会大一点因为还有调试信息】 2.2 开始使用 gdb 可执行文件 退出 ctrl d 或 quit 当编译器不支持C99可以gcc 文件 -o 可执行文件 -stdC99readelf -S 可执行文件 可以看到调试信息readelf -S 可执行文件 | grep debug【注意这里生成的是可执行文件是debug的】 可以看到debug的调试信息 调试命令 l 显示代码 list 或 l 行号显示源代码接着上次的位置往下列每次列10行。 listl 函数名列出某个函数的源代码。 r或run运行程序。【断点停止c ,到达下一个断点】 n 或 next单条执行。【逐过程】 s 或step进入函数调用 【逐语句】 break (b) 行号在某一行设置断点 break 函数名在某个函数开头设置断点 info breakb 查看断点信息。 finish执行到当前函数然后停下来等待命令 print§打印表达式的值通过表达式可以修改变量的值或者调用函数 p 变量打印变量值。 set var修改变量的值 continue(或c)从当前位置开始连续而非单步执行程序【断点到断点】 run(或r)从开始连续而非单步执行程序 delete breakpoints删除所有断点 delete breakpoints nd 序号【序号可以用info b 查看】删除序号为n的断点 disable breakpoints禁用断点 enable breakpoints启用断点 info(或i) breakpointsinfo b参看当前设置了哪些断点 display 变量名常显示跟踪查看一个变量每次停下来都显示它的值 undisplay 序号取消常显示取消对先前设置的那些变量的跟踪 until X行号跳至X行 breaktrace(或bt)查看各级函数调用及参数 infoi) locals查看当前栈帧局部变量的值 quit退出gdb 回车 可以显示上一次gdb执行的结果 总结 以上就是今天要讲的内容本文详细地介绍了Linux编译器-gcc/g的使用、linux调试器-gdb的使用希望给友友们带来帮助
http://www.sczhlp.com/news/161316/

相关文章:

  • 给国外做网站wordpress浏览数
  • app 展示网站程序员wordpress模板
  • html网站设计模板下载网络干什么赚钱
  • 东莞市 住房与城乡建设部网站wordpress如何修改字体
  • 网站建设岗位有哪些安徽今天刚刚发生的新闻
  • 求网站建设方法网页设计师证书考试内容
  • 免费商城网站申请国内设计网站大全
  • 商城网站建设好么深圳保障性住房申请条件
  • iis网站重定向iis 建立子网站
  • 做网站页面设计报价洛阳网站建设首选洛阳铭信科技
  • 祁阳网站建设保健品网站设计
  • 网站建设收费价格网站开发代码用什么软件
  • 无锡制作网站广州设计公司排行榜
  • 防重复提交的实现
  • Day25错误(error)与异常(exception)的简单认识
  • 251003
  • 算法课第一次作业
  • 科泉网站做网站弄关键词多少钱
  • 企业建网站平台python3做网站教程
  • 平面设计好还是电商设计好南昌seo数据监控
  • 济南正规网站建设公司哪家好湖北交投建设集团集团网站
  • 广州网站建设培训学校公司首页模板
  • 网赌网站做流量渗透建立网站链接结构的基本方式是
  • 宾馆的网站回款如何做分录外贸公司取名字大全集
  • 网站免费的有没有公众号开发怎么做
  • 书画网站的建设目标出入青岛最新通知今天
  • 网站双线主机优势零基础怎么学美工
  • 营销型网站排wordpress redis
  • 怎样做网站卖东西建网站的小软件
  • 怎样免费做自己的网站鹤壁网站seo