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

怎么制作网页模板企业seo网络营销

怎么制作网页模板,企业seo网络营销,企业网站建设实训,东莞品牌网站建设服务本篇博客详细分析,Linux平台上C程序的编译过程与调试方法,这也是我们后续程序开发的基础。 目录 一、第一个hello world程序 1.1 创建.c文件 1.2 编译链接 运行可执行程序 二、编译链接过程 2.1 预编译阶段 2.2 编译阶段 2.3 汇编阶段 2.4 链…

     本篇博客详细分析,Linux平台上C程序的编译过程与调试方法,这也是我们后续程序开发的基础。

目录

一、第一个hello world程序

1.1 创建.c文件

1.2 编译链接  +  运行可执行程序

二、编译链接过程

2.1 预编译阶段

2.2 编译阶段

2.3 汇编阶段

2.4 链接阶段

三、gcc 分步编译链接

​3.1 一步完成编译链接生成可执行程序

3.2 分两步完成编译链接生成可执行程序

3.3 多文件编译链接

四、 make工具和makefile文件

4.1 什么是make和makefile

4.2 利用make工具完成上一小节的自动化编译过程

4.2.1 编写makefile文件

4.2.2 利用make工具自动生成可执行程序

4.2.3 总结

五、gdb 调试

5.1 Debug 版本和 Release 版本

5.2 单进程、单线程基础调试命令

5.3 使用GDB软件调试程序的基本步骤

5.4 如何在自动化编译工具中加入命令,自动生成含有调试信息的Debug版本

5.5 多进程调试命令

5.6 多线程调试命令


一、第一个hello world程序

1.1 创建.c文件

1.2 编译链接  +  运行可执行程序

      C语言是一门编译型语言,编译型语言首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。对于编译型语言,绕不过的就是编译器。GCC(GNU编译器套件):GNU Compiler Collection。可以编译C、C++、JAVA、Fortran、Pascal、Object-C、Ada等语言。

gcc是GCC中的GNU C Compiler(C 编译器),g++是GCC中的GNU C++ Compiler(C++编译器)

     注意:对于Linux平台下,生成的可执行程序没有后缀.exe ,关于编译链接的过程,我们下面作详细分析。

二、编译链接过程

2.1 预编译阶段

a) 删除所有的“#define”,并且展开所有的宏定义;

b) 处理所有的条件预编译指令,“#if”、“#ifdef”、“#endif”等;

c) 处理“#include”预编译指令,将被包含的文件插入到该预编译指令的位置;

d) 删除所有的注释;

e) 添加行号和文件名标识,以便于编译器产生调试用的符号信息及编译时产生编译错误和警告时显示行号;

f) 保留所有的#pragma 编译器指令,因为编译器需要使用它们。

2.2 编译阶段

词法分析、语法分析、语义分析,代码优化,汇总符号。

2.3 汇编阶段

将汇编指令翻译成二进制格式,生成各个 section,生成符号表。

2.4 链接阶段

a) 合并各个 section,调整 section 的起始位移和段大小,合并符号表,进行符号解析, 给符号分配虚拟地址

b) 符号重定位

三、gcc 分步编译链接

3.1 一步完成编译链接生成可执行程序

gcc  -o main main.c

3.2 分两步完成编译链接生成可执行程序

step1、gcc   -c   main.c                   生成main.o文件

step2、gcc   -o   main     main.o     生成main(main.exe)可执行程序

3.3 多文件编译链接

    创建3个源文件如下:add.c  max.c  main.c 

方式1:一步直接完成编译链接生成可执行程序

方式2:分两步;

  1. 首先,先把每个文件生成对应的.o文件, gcc -c xxx.c
  2. 其次,将所有的.o文件链接生成可执行程序文件main, gcc -o main  main.o xx.o xx.o

四、 make工具和makefile文件

4.1 什么是make和makefile

       当源码文件比较多的时候就不适合通过直接输入gcc命令来编译,这时候就需要一个自动化的编译工具, 这就是make工具,make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

  1. make:一般说GNU Make,是一个软件,用于将源代码文件编译为可执行的二进制文件,make工具主要用于完成自动化编译make工具编译的时候需要Makefile文件提供编译文件。
  2. Makefile:make工具所使用的文件,Makefile指明了编译规则。makefile带来的好处就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

4.2 利用make工具完成上一小节的自动化编译过程

4.2.1 编写makefile文件

工程是需要被清理的,像clean这种,没有被第一个目标文件直接或间接关联,那么它后面所定义的命令将不会被自动执行, 不过,我们可以显示要make执行。即命令——“make clean”,以此来清除所有的目标文件,以便重编译。 

4.2.2 利用make工具自动生成可执行程序

4.2.3 总结

      利用make工具完成自动化编译的大致步骤如下:

  1. 提供好所有的源文件.c和makefile文件
  2. 执行命令make, 自动生成编译链接四个阶段的所有文件 
  3. 清理中间的目标文件,执行命令:make  clean

五、gdb 调试

5.1 Debug 版本和 Release 版本

1、Debug 版本

     Debug 版本为可调试版本,生成的可执行文件中包含调试需要的信息。我们作为开发人 员,最常用的就是 debug 版本的可执行文件。 Debug 版本的生成: 因为调试信息是在编译过程时加入到中间文件(.o)中的,所以必须在编译时控制其生成包含调试信息的中间文件。如:gcc -o hello hello.c -g

2、Release 版本

        Release 版本为发行版本,是提供给用户使用的版本。用 gcc 默认生成的就是 Release 版 本。 因此,我们使用gdb进行调试 ,首先将源代码编译、链接生成 Debug 版本的可执行文件,然后通过‘gdb Debug 版本 的可执行文件名’进入调试模式。

5.2 单进程、单线程基础调试命令

命令作用
l显示代码,默认一次只显示10行
b+行号给指定行添加断点
b+函数名给指点函数的第一有效行添加一个断点
info break显示断点信息
delete +断点编号删除指定断点
r(run)运行程序,启动调试代码
n(next)单步执行
c (continue)继续执行,直接执行到下一个断点处
s(step)进入将要被调用的函数中执行
 finish跳出函数
p +变量 (print)打印变量的值
p + &变量打印变量的地址
p arr(数组名)打印数组所有元素的值
ptype  + 变量显示变量类型
bt(breaktrace)显示函数调用栈
q (quit)退出调试
  1. l +行号 就能跳转到该行。
  2. l +文件名:行号 能跳转文件 跳转别的文件的第几行 l add.c :1;
  3. 显示函数调用的栈关系 上边信息显示当前所在位置,下面信息显示执行完当前程序会回到哪一行。  

5.3 使用GDB软件调试程序的基本步骤

       GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等 IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。调试程序的基本步骤如下:

  1. 生成包含调试信息的Debug版本,如:gcc  -o test test.c -g
  2. 执行命令:gdb  test
  3. 进入调试,利用常用的命令

5.4 如何在自动化编译工具中加入命令,自动生成含有调试信息的Debug版本

在前面定义一个 GDB=-g,在生成规则后加$(GDB),就会取GDB的值;不让生成debug版本就是把GDB置空(GDB=)。  

5.5 多进程调试命令

(gdb)set follow-fork-mode mode

mode 可以选择 parent 或者 child,即:选择调试那个进程。 注意:未被跟踪调试的进程会直接执行结束。

5.6 多线程调试命令

a) 利用 info threads 查看线程信息;

b) thread id 调试目标 id 指定的线程;

c) set scheduler-locking off | on | step; “off”表示不锁定任何线程; “on”只有当前被调试的线程继续运行; “step”在单步执行的时候,只有当前线程会执行;

      以上就是全部内容!请务必掌握,这是后续学习的基础,欢迎大家点赞加关注评论,您的支持是我前进最大的动力!下期再见! 

http://www.hkea.cn/news/371631/

相关文章:

  • 网站文章列表如何排版郑州seo技术培训班
  • 小型b2c网站百度开户渠道商哪里找
  • 武进区住房和城乡建设局网站爱站网能不能挖掘关键词
  • APP手机端电子商务网站建设营销成功的案例
  • 公司网站引导页百度搜索关键词排名优化技术
  • 网站开发与维护学什么网站建设seo优化培训
  • 常州网站开发百度网盘电脑版官网
  • wordpress安全权限关键词优化公司哪家好
  • 银川做网站服务google play下载安卓
  • 科技型中小企业服务网安徽搜索引擎优化seo
  • 网站建设专家排名邯郸seo营销
  • 做网站一个月20g流量够吗安全又舒适的避孕方法有哪些
  • 扫二维码直接进网站怎么做怎么提交网址让百度收录
  • 柳州建设局网站广告买卖网
  • 做外贸一般上哪些网站google play谷歌商店
  • 泉州手机网站制作如何做企业产品推广
  • 徐州手机网站设计汕头网站建设优化
  • 有没有专业收费做网站优化的百度百科优化排名
  • 常州网站建设哪家便宜江西seo推广软件
  • 如何用pageadmin做网站品牌宣传策略有哪些
  • 网站免费优化软件需要优化的地方
  • 24小时学会网站建设下载厦门百度竞价开户
  • 怎样学做网站网站权重等级
  • 做网站好还是做淘宝好北京seo推广
  • 郑州门户网站建设哪家好网站首页不收录
  • 网站制作营销型哪些网站可以发广告
  • 最新政府网站建设理念广州头条新闻最新
  • 济宁网站建设神华线上推广的三种方式
  • 我要表白网站在线制作如何做网站的教程
  • 福州论坛建站模板策划网络营销活动