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

即墨网站建设在哪网站建设规划书 简版

即墨网站建设在哪,网站建设规划书 简版,品牌建设的五个要素,重庆市建设工程信息网首页目录 导读 1. make/Makefile 1.1 引入 1.2 概念 1.3 语法规则 1.4 示例 2. Linux调试器-gdb 2.1 引入 2.2 概念 2.3 使用 导读 我们在上次讲了Linux编辑器gcc\g的使用#xff0c;今天我们就来进一步的学习如何调试#xff0c;以及makefile这个强大的工具。 1. mak…目录 导读 1. make/Makefile 1.1 引入 1.2 概念 1.3 语法规则 1.4 示例 2. Linux调试器-gdb 2.1 引入 2.2 概念 2.3 使用 导读 我们在上次讲了Linux编辑器gcc\g的使用今天我们就来进一步的学习如何调试以及makefile这个强大的工具。 1. make/Makefile 1.1 引入 会不会写makefile从一个侧面说明了一个人是否具备完成大型工程的能力。 一个工程中的源文件不计数其按类型、功能、模块分别放在若干个目录中makefile定义了一系列的 规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译甚至于进行更复杂 的功能操作 1.2 概念 在Linux中make是一个常用的构建工具用于自动化构建和管理程序的编译过程。 make工具通过读取一个叫做Makefile的文件来执行编译和链接等操作。 Makefile中包含了一系列的规则和指令用于描述如何将源代码转换为可执行程序。 makefile带来的好处就是——“自动化编译”一旦写好只需要一个make命令整个工程完全自动编译极大的提高了软件开发的效率。make是一个命令工具是一个解释makefile中指令的命令工具一般来说大多数的IDE都有这个命令比如Delphi的makeVisual C的nmakeLinux下GNU的make。可见makefile都成为了一 种在工程方面的编译方法。make是一条命令makefile是一个文件两个搭配使用完成项目自动化构建。 1.3 语法规则 Makefile语法规则包括目标、依赖关系和命令。 1. 目标(Target)指定要构建的文件或操作的名称。目标是make工具的主要执行对象。 target: dependenciescommand2. 依赖(Dependencies)规定目标所依赖的文件或操作。依赖关系用于确定何时需要重新构建目标。可以有多个依赖项用空格分隔。 target: dependency1 dependency2command3. 命令(Commands)描述了如何生成目标的命令。命令必须以制表符开始并且在同一行上。可以有多个命令每个命令占一行。 target: dependenciescommand1command24.  变量(Variables)可以在Makefile中定义变量用于存储常用的参数和选项。变量可以通过$(variable_name)来引用。 variable_name value5. 注释(Comments)使用#符号来添加注释。注释可以出现在任意位置并且会被忽略。 # This is a comment6. 伪目标(Phony Targets)有些目标不是实际的文件而是用于执行特定操作的伪目标。可以使用.PHONY声明伪目标。 .PHONY: target7. 默认目标(Default Target)Makefile可以指定一个默认的目标当没有明确指定目标时会执行默认目标。使用.DEFAULT_GOAL指定默认目标。 .DEFAULT_GOAL : target1.4 示例 编写一个简单程序 [zhycentos7 ~]$ vim test.c [zhycentos7 ~]$ cat test.c #include stdio.hint main() {printf(hello world\n);return 0; }编写makefile文件 其中 test 是的目标文件也是我们的最终生成的可执行文件。 依赖文件就是 test.c源文件然后使用我们的gcc命令重建目标文件。 [zhycentos7 ~]$ vim makefile [zhycentos7 ~]$ cat makefile test: test.cgcc -o test test.c 执行make命令 执行make命令后makefile文件里的 gcc -o test test.c 命令被执行生成一个test可执行文件。 [zhycentos7 ~]$ ls 111 a.out install.sh makefile test.c [zhycentos7 ~]$ make gcc -o test test.c [zhycentos7 ~]$ ls 111 a.out install.sh makefile test test.c [zhycentos7 ~]$ ./test hello world继续编辑makefile文件 clean是一个伪目标用于清理生成的目标文件和可执行文件。它的命令是删除test文件。使用.PHONY声明了clean是一个伪目标防止与同名文件冲突。 [zhycentos7 ~]$ vim makefile [zhycentos7 ~]$ cat makefile test: test.cgcc -o test test.c# 定义伪目标和命令 clean:rm -f test.PHONY: clean再次执行make命令 要清理生成的文件可以执行make clean命令。 [zhycentos7 ~]$ ls 111 a.out install.sh makefile test test.c [zhycentos7 ~]$ make clean rm -f test [zhycentos7 ~]$ ls 111 a.out install.sh makefile test.c定义变量 使用CC定义了编译器和编译选项的变量。 [zhycentos7 ~]$ vim makefile [zhycentos7 ~]$ cat makefile # 定义变量 CC gcc CFLAGS -Wall -gtest: test.c$(CC) -o test test.c# 定义伪目标和命令 clean:rm -f test.PHONY: clean2. Linux调试器-gdb 2.1 引入 我们在写编写C语言代码时难免会遇到一些解决不了的bug这时我们会选择去进行调试看看到底是哪一部分出现了错误从而进一步的解决问题。 相对的我们在Linux中编写程序时也可以进行调试。 2.2 概念 GDB是一种强大的命令行调试器可用于调试C、C和其他编程语言的程序。 DB具有许多功能包括设置断点、单步执行、查看变量值、查看内存内容、追踪函数调用等。它还支持多线程和多进程调试可以与各种编译器和调试器一起使用。 程序的发布方式有两种debug模式和release模式 Linux gcc/g出来的二进制程序默认是release模式 要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项 2.3 使用 基本命令 listl 行号显示binFile源代码接着上次的位置往下列每次列10行。 listl 函数名列出某个函数的源代码。 continue(或c)从当前位置开始连续而非单步执行程序。 run(或r)从开始连续而非单步执行程序。 n 或 next单条执行。 s或step进入函数调用。 break(b) 行号在某一行设置断点。 break 函数名在某个函数开头设置断点。 info break 查看断点信息。 finish执行到当前函数返回然后挺下来等待命令。 print(p)打印表达式的值通过表达式可以修改变量的值或者调用函数。 p 变量打印变量值。 set var修改变量的值。 delete breakpoints删除所有断点。 delete breakpoints n删除序号为n的断点。 disable breakpoints禁用断点。 enable breakpoints启用断点。 info(或i) breakpoints参看当前设置了哪些断点。 display 变量名跟踪查看一个变量每次停下来都显示它的值。 undisplay取消对先前设置的那些变量的跟踪。 until X行号跳至X行。 breaktrace(或bt)查看各级函数调用及参数。 infoi) locals查看当前栈帧局部变量的值。 quit退出gdb。 示例 编写一段代码 [zhycentos7 ~]$ vim project.c [zhycentos7 ~]$ cat project.c #include stdio.hint main() {int num1 5;int num2 0;int result;result num1 / num2;printf(The result is: %d\n, result);return 0; } 将程序编译为可调试的可执行文件 gcc -g project.c -o project 启动gdb调试器 这将启动gdb并显示(gdb)提示符。 gdb project 显示源代码 list 设置断点 这将在main函数的开头设置一个断点。 break main 运行程序 程序将开始执行并在达到断点处停止。 run 单步执行 这将单步执行程序进入main函数。 step 检查变量的值 print num1 继续执行程序 continue 检查错误 continue命令之后会继续执行程序会在除以0的地方崩溃。在运行到该语句时gdb会停止并显示相关信息。
http://www.zqtcl.cn/news/871996/

相关文章:

  • 小江网站建设公司紧急页面通知升级中访问大通知
  • 那个公司做的网站详情页好看做动态图片的网站吗
  • 旅游网站模板文章wordpress 删除
  • 沛县专业做网站wordpress id重置密码
  • 湖南邵阳建设局网站做外贸一般用什么网站
  • html网站开发主要涉及哪些技术越秀金融大厦地址
  • 北京建设银行网站田村广州室内设计公司排行榜
  • 安徽金路建设集团有限公司网站平面设计班培训入门
  • 小型电子商务网站开发php mysql网站开发教程
  • 网站建设常州麦策电商2 网站建设的一般步骤包含哪些
  • cn免费域名注册网站企业推广的渠道有哪些
  • 关于网站建设心得体会网站的功能包括哪些
  • 番禺网站制作技术网站建设与管理pdf
  • 毕业设计做网站选题营销型网站功能模块
  • 西部数码网站管理助手安装建工教育网
  • wordpress 网站logowordpress文本编辑器插件
  • 杭州装饰网站建设如何免费建购物网站
  • 在vs做的项目怎么连接到网站珠海有什么网站
  • 网上购物网站建设论文6做的网站必须放在idc机房吗
  • 基于asp.net的视频网站开发500套wordpress模板
  • 商城模板建站价格寻找专业网站建设
  • 网址我的上网主页seo培训中心
  • 上海建网站服务器河南网站推广优化排名
  • 夸克作文网站淄博团购网站建设
  • 家居类企业响应式网站一个很好的个人网站开发
  • 推荐网站建设服务器百度竞价入口
  • 微信如何做网站100个成功营销策划案例
  • 手机网站分享js代码外贸网站做几种产品
  • 文化网站建设论文wordpress模板打包
  • 学校网站查询做网站 先上线再调整