Makefile && GDB

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Makefile && GDB相关的知识,希望对你有一定的参考价值。

昨天学习了C++内存空间一章,看了TCP/IP第一卷第一章,最后看了《Linux网络编程》里的Makefile和gdb部分。现在靠回忆补上一篇博客。

一:C++有三种内存存储模式(C++11有4种,多了“线程存储”)

  1.自动变量

    a.auto声明变量的方式已被取消,register方式仍然保持

    b.自动变量的生存周期就是定义的位置到括号结束的位置

  2.静态变量

    a.有三种静态变量:链接性为外部,链接性为内部,没有链接性。

    b.三种对应定义方式为:定义在函数外面;定义在函数外面并加上static限定词;定义在函数内部并加上static限定词。

    c.共同性:生命周期和函数无关,程序运行期间一直存在。只被初始化一次,以后不再初始化(不是不再被赋值)

    d.差别:链接性为外部的,作用域为所有文件,所以,其它文件不能定义相同变量,只能声明使用:extern 类型 变量。如果extern 类型 变量 = 3;等同于定义,是错误的。或者只能在外部使用static修饰同名变量,以覆盖外部同名变量。链接性为内部的,作用域为文件,外部不可用extern声明使用。

  3.自由空间变量或堆

    还没看。今天看后总结。

 

Tcp/Ip:

  1.OSI 不记得

  2.IP分类法:记得方法为:

    A 0+网络号+主机号

    B 10+网络号+主机号

    C

    D

    E

Makefile:

  1.make时首先执行Makefile第一条规则!

  2.其它规则可以使用make + TARGET执行

  3.命令以Tab键开始

  4.一行写不满,使用反斜杠:‘\’

  5.规则定义:

  TARGET:DEPENDENTS(1) DEPENDENTS(2)

    GCC TARGET -o OBJ 

  6.%o:%c 将以o结尾的文件换成c结尾的(记得有问题)

  [email protected]目标文件 $^依赖项以空格分开 $<依赖项第一位

  8.VPATH=path:path 将搜索目录添加进来

  9.能定义变量 OBJ=main.o sub.o

  10.等递归调用make

gdb:

  ptype:打印变量类型和整个结构

  info thread:打印线程

  thread id:进入线程

  whatis:打印变量类型

 

 

因为我现在觉得学习最重要的不是看了多少东西,而是记住了多少东西,最后是能用上多少东西。我现在看书基本是看一遍后就已经做好全部忘记的准备,所有的东西都准备花上时间重新看3遍以上,上不封顶。

以上是关于Makefile && GDB的主要内容,如果未能解决你的问题,请参考以下文章

Make & Makefile

正确编译后如何使我的 Makefile 发出声音?

uboot主Makefile之5——obj&src

汇编语言交叉编译&Makefile文件

使用“addinclude unistd”修改 Makefile

LinuxLinux环境基础开发工具的使用 ———(yumvimgcc&g++gdbmake/Makefile进度条 git)