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

如何建立属于自己的网站WordPress资讯网站

如何建立属于自己的网站,WordPress资讯网站,天河定制型网站建设,图片编辑工具免费版编译器—gcc/g、调试器—gdb以及自动化构建工具—makefilemake 文章目录 编译器—gcc/g、调试器—gdb以及自动化构建工具—makefilemake1. 编译器——gcc/g1.1 生成可执行文件与修改默认可执行文件1.2 程序的翻译过程以及对应的gcc选项1.2.1 预处理 gcc -E…编译器—gcc/g、调试器—gdb以及自动化构建工具—makefilemake 文章目录 编译器—gcc/g、调试器—gdb以及自动化构建工具—makefilemake1. 编译器——gcc/g1.1 生成可执行文件与修改默认可执行文件1.2 程序的翻译过程以及对应的gcc选项1.2.1 预处理 gcc -E1.2.2 编译 gcc -S1.2.3 汇编 gcc -c1.2.4 链接 gcc 2. 调试器——gdb2.1 debug版本和release版本2.2 gdb常用功能及其选项2.2.1 查看代码2.2.2 开始/退出调试2.2.3 断点设置2.2.4 逐语句/逐过程2.2.5 断点跳跃2.2.6 查看变量2.2.7 查看函数调用堆栈 3. 自动划构建工具——makekfilemake3.1 makefile3.2 make3.2.1 工作原理3.2.2 文件的acm时间 本章思维导图 注本章思维导图对应的 .xmind和 .png文件都已同步导入至 资源 1. 编译器——gcc/g 安装命令 gccsudo yum install -y gccgsudo yum install -y gcc-c gcc只能编译C语言代码g既可以编译C语言代码也可以编译C代码推荐用gcc编译C语言代码 注gcc和g的选项一致下面的讲解都以gcc为例 1.1 生成可执行文件与修改默认可执行文件 我们可以直接用gcc编译器将一个.c文件直接编译成可执行文件 命令 gcc filename 在这种情况下会默认生成一个a.out可执行文件 如果我们想要指定生成的可执行文件的名字可以加入-o选项 gcc -o newName filename 当然如果想要对gcc编译器做更多的了解上面的操作显然是不够的我们需要结合程序的翻译过程来进行学习。 1.2 程序的翻译过程以及对应的gcc选项 众所周知程序的翻译分为了四个步骤预处理、编译、汇编、链接。要学会只用Linux的编译器gcc/g固然也需要理解这四个步骤 关于这四个步骤博主已经在程序的翻译环境和运行环境做了较为详细的阐述故下面只对这四个步骤做简单的讲解 1.2.1 预处理 gcc -E 在这一过程编译器会进行头文件展开、宏替换、条件编译等过程 对应的gcc命令为 gcc -E -o file.i file -E即为预处理的gcc选项。表示预处理完后就停止预处理完后生成的文件后缀一般为.i 演示 可以看到所谓的头文件展开实际上就是将头文件的内容拷贝至源文件中预处理后得到的文件仍是C语言 1.2.2 编译 gcc -S 在这一过程会对与处理过后的文件进行语法分析和词义分析如果没有错误就会生成以一个由汇编代码所写的文件 对应的gcc命令为 gcc -S -o file.s file -S即为编译的gcc选项。表示编译完后就停止 编译生成的文件的后缀名一般为.s 演示 1.2.3 汇编 gcc -c 在这一过程中会将汇编代码转换为二进制代码形成一个二进制文件 对应的gcc命令为 gcc -c -o file.o file -c即为汇编的gcc选项。表示汇编完后就停止汇编生成的二进制文件我们称其为目标文件.obj文件后缀可以为.o 演示 1.2.4 链接 gcc 会对目标文件进行动静态库链接形成最终的可执行程序.exe 对应的gcc命令为 gcc -o newName filename 可以看到用这条命令就可以直接生成一个可执行程序 演示 以前写代码时大家可能会有一个疑惑我明明没有声明和定义printf()、scanf()等库函数为什么我可以正常使用呢 而之所以我们可以使用这些库函数正是因为编译器有链接这一过程这一过程将目标文件和库文件进行链接从而让我们可以使用库中声明和定义好的函数 我们可以用命令ldd file查看一个文件依赖的库文件 函数库分为动态库和静态库两种 动态库 动态库不包含在可执行程序中而是在程序运行时由操作系统或者程序自行加载多个程序可以共享一个动态库因此如果采用动态链接可以**减少程序所占用的使用动态链接的程序对库的依赖性较强因此一旦库丢失会使依赖这个库的程序都无法运行gcc/g编译默认进行的是动态链接 静态库 一般来说需要自己对C语言和C的静态库进行安装执行下面两个命令即可 sudo yum install -y glibc -static sudo yum install -y libstdc -static 静态库是指编译链接时,把库文件的代码全部加入到可执行文件中的库静态库包含在可执行程序中因此使用静态链接的程序对库的依赖性较弱同类型平台都可以使用由于可执行程序包含了库文件的拷贝因此使用静态链接的程序会占用较多的资源空间内存、磁盘如果要使gcc/g进行静态链接就要加入-static选项 2. 调试器——gdb 安装命令 sudo yum install -y gdb 为了能够更好的理解我们先来谈谈程序发布的两个版本——debug版本和release版本 2.1 debug版本和release版本 首先我们要清楚 Linux上的gcc和g编译出来的可执行程序默认都是release版本的release版本是不支持调试的只有在debug版本下才能调试 为了在Linux上能够生成debug版本的可执行程序我们需要在编译时加上选项-g gcc -o newFile file -g 下面我们再来谈谈为什么一个程序要有debug和release两个版 在程序的开发阶段程序难免会出现各种问题而为了能够方便程序员对这些错误进行排查就必须要支持调试这一功能因此程序员开发中的程序一般都是debug版本里面包含了各种调试信息方便进行错误排查当程序员认为开发中的程序已经基本完成就会将其交给测试组的人员进行测试。而这个程序最终肯定是要交给大众去使用的使用这个程序的普通人显然不需要debug版本的调试信息他们只需要更小的体积和更快的下载速度因此这就要求程序需要一个**release发行版本这个版本就是给测试组的人员进行测试和给用户进行使用的版本** 2.2 gdb常用功能及其选项 进入调试模式的命令为 gdb file file必须是一个debug版本的可执行程序 2.2.1 查看代码 命令 l n 查看第n行附近的10行代码按Enter可以继续查看 2.2.2 开始/退出调试 命令 r如果没有打断点那么会正常运行代码否则会运行到第一个断点处quit推出调试 2.2.3 断点设置 添加断点 b n在第n行添加断点b 函数名在指定函数的入口处添加断点b file:n在指定文件的第n行添加断点。注意这个file不是可执行程序而是被编译的.c/.cpp文件 查看断点 info b 例如 第一列的数字Num表示断点的编号第四列的字符Enb表示断点的使能状态y表示该断点处于开启状态可被使用n表示处于关闭状态不可被使用 删除断点 d n表示删除**编号为n**的断点。 特别注意删除断点是按编号删除而不是按行号 使能断点 disable n关闭编号为n的断点enbale n开启编号为n的断点 2.2.4 逐语句/逐过程 逐语句 在C语言/C中被一个分号;分割的语句都被称为一条语句。逐语句调试就是一个个分号地不做任何跳过的调试。 因此逐语句调试可以进入函数体内调试。 命令 s 逐过程 一个函数成为一个过程因此逐过程调试不能进入函数体内进行调试 命令 n 2.2.5 断点跳跃 如果打了多个断点那我们可以通过命令直接运行到下一个断点处 c 2.2.6 查看变量 p name查看指定变量的内容 如果想要使变量一直显示可以用命令 display name 例如 变量前的数字即为该变量的编号 如果想删除常显示的变量可以使用命令 undisplay n即删除编号为n的变量常显示 2.2.7 查看函数调用堆栈 命令 bt 3. 自动划构建工具——makekfilemake Makefile和make是与Linux系统中软件编译和构建相关的工具。它们通常用于自动化构建过程确保在源代码发生变化时只重新编译必要的部分从而提高开发效率。 3.1 makefile 也可以写为Makefilemakefile是一个文本文件makefile定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译甚至于进行更复杂 的功能操作 我们来通过一个具体的例子来学习一个makefile文件要包括哪些内容 mybin:code.c 这叫一组依赖关系。mybin目标文件code.c为依赖文件列表。表示mybin这个目标文件依赖于code.c这个文件列表而构建 gcc -o mybin code.c 注意前面必须有Tab缩进这是语法要求这一行叫做依赖方法。表示目标文件是通过gcc编译来完成对code.c这一依赖文件列表的依赖的 .PHONY:clean 将clean设置成一个伪目标伪目标在任何时候都会执行不会受时间戳限制 clean: clean也是一个目标文件但是没有对应的依赖文件列标其被修饰为了一个伪目标表示一个命令操作——清除 rm -f mybin 这就是clean的依赖方法即clean对应的操作 makefile文件的其他写法 在一组依赖关系和依赖方法中目标文件可以被$替换依赖关系列表可以被$^替换例如 makefile文件也允许我们定义变量和选项例如 3.2 make make是一个命令 3.2.1 工作原理 如果我们只输入一个make命令 会找到makefile中的第一个目标文件然后根据依赖文件列表和依赖方法构建出目标文件 如果依赖文件列表有文件不存在那么会继续向下找这个不存在文件的依赖关系和依赖方法知道构建出这个文件 如果最终这个文件不能被构建那么此次make命令就会报错 例如 make后面也可以跟一个目标文件来执行指定的操作。例如make clean 特别注意 如果一个目标文件没有被.PYTHON修饰为伪目标那么它的make构建就会收到时间戳的影响 即如果该文件的修改时间没有改变那么就不会进行make构建 例如重复构建目标文件mybin会报错 而提到修改时间我们就有必要了解一个文件的acm时间 3.2.2 文件的acm时间 我们可以用命令查看一个文件的acm时间 stat filename Access访问时间。即最后一次读写文件的时间Modify修改时间。即最后一次修改文件内容的时间。这个时间就是影响make构建的时间Change改变时间。文件 内容 属性即最后一次改变文件内容或属性的时间。 我们也可以用命令来刷新一个文件的acm时间 touch filename 本章完。 下一章我们将进入Linux系统编程部分各位如果感兴趣不妨点个关注。
http://www.hkea.cn/news/14404902/

相关文章:

  • 西安百度网站快速优化中国500强企业
  • 对网站建设课程的心得体会谷歌浏览器下载安装2022最新版
  • 虚拟网站鸿扬家装
  • 网站地图样式佛山seo外包平台
  • 苏州网推广网站建设江苏金地建设工程有限公司网站
  • 广州网站制作公司联系方式美妆网站建设环境分析
  • 辛集建设网站工程招标建设部指定网站
  • 专业网站策划 西安wordpress新奇插件
  • 电子商务网站建设项目范围手机版谷歌浏览器入口
  • 联盟营销网站有哪些腾讯做的购物网站
  • 招设计师在哪里找网站seo顾问
  • 只放一个图片做网站网址大全123下载安装
  • 长沙岳麓区网站建设销售平台网站建设方案模板
  • 网路营销网站策划书莒南做网站
  • 上海网站建设极简慕枫wordpress 卸载
  • 城乡住房建设厅网站遵义网站推广
  • 做网站和推广的公司哪家好本地搭建多个网站
  • 做平面的就一定要做网站吗移动端和pc端的区别
  • 青岛网站制作哪里有龙岩网站设计 贝壳下拉
  • 成为网站建设人员措施潍坊网站制作保定公司
  • 极验验证 wordpress济南做seo的公司排名
  • 新网网站负责人核验现场拍摄照片电子件网站建设的论文
  • 网站接入支付宝在线交易怎么做广告公司好听的名字
  • 商城网站有哪些怎么设置网站默认首页
  • 网站建设可行性方案模板在线定制手机壳
  • 做网站费用入什么科目asp网站 seo
  • 重庆建工建筑工程信息网太原网站搜索优化
  • html5模板网站北京地产网站建设
  • 江苏省建设厅网站挂证存疑名单php做商品网站
  • 电子网站建设公司怎么安装php网站