GDB&make

用户管理:

添加用户:useradd 选项 用户名
设置密码:passwd 用户名
删除用户:userdel 选项 用户名
创建用户组:groupadd 选项 用户组名

磁盘操作:

df:查看磁盘的空间
df -h 表示以可读性较高的形式展示大小

du -sh:查看目录的真实大小
du -sh 目录路径

网络设置:

网卡配置文件位置:/etc/sysconfig/network-scripts
重启网卡:
service network restart
查看ip地址:ifconfig
开启某个网卡:ifup 网卡名

GDB

检查逻辑错误的,而不是语法错误(语法错误是可以通过GCC查看的)

使用步骤:
gcc -g -o 可执行文件 -c *.c
-g:使之可调试
1、gdb 可执行文件

基础指令:

l:显示代码
b 设置断点
  b 52行号
  b 函数名字:行号
  b 函数名

r:执行程序
n:next下一步的意思
s:step单步执行,进入函数内部
quit:退出调试
bt:显示堆栈
p:查看变量

其他指令

-- 段错误
设置断点,调试程序时  r  之后 程序停止的位置就是段错误的位置
info b: 查看断点信息

Makefile

说明:
-- gcc --编译器
-- make-linux自带的构建器
-- 构建的规则在Makefile中

那么,如何制定规则呢?
1、makefile 文件的命名
  -- makefile或者Makefile
2、规则
可以取代一系列的gcc 过程
如:gcc a.c b.c *.c -o main
  语法:
目标,依赖,命令
目标:依赖
(tab缩进)命令
如:main:a.c b.c *.c
       (tab键)gcc a.c b.c *.c -o main
- 可以有多条规则
版本一:
main:main.c add.c del.c modify.c
    (tab缩进)gcc main.c add.c del.c modify.c -o main  -I ../include/

make

以上的makefile文件效率低,只要有一个源文件修改都会被重新编写了。
so,-----------解决方式,先编写.o

版本二:
main:main.o add.o del.o modify.o
    gcc  main.o add.o del.o modify.o -o main


main.o:main.c
    gcc -c main.c -o main.o -I ../include


add.o:add.c
    gcc -c add.c -o add.o

del.o:del.c
    gcc -c del.c -o del.o

modify.o:modify.c
    gcc -c modify.c -o modify.o

还是有问题:冗余
解决办法:----自定义变量
自定义变量:

object = a.c b.c *.c
取值 $(object)

自带的变量:大写

如:CPPFLAGS

自动变量

$@:规则中的目标

$<:规则中的第一个依赖

$^:规则中所有的依赖

注意:自动变量只能在规则的命令中使用。
版本三:
obj = main.o add.o del.o modify.o
obj  = 10

$(obj)取得obj的值
depand = main.o add.o del.o modify.o
com = main.c add.c del.c modify.c
main:$(depand)
    gcc $(com) -o main  -I ../include/

版本四
obj = main.o add.o del.o modify.o
main:$(obj)
        gcc  $^ -o $@
main.o:main.c
        gcc -c $^ -o $@ -I ../include
add.o:add.c
        gcc -c add.c -o add.o
del.o:del.c
        gcc -c del.c -o del.o
modify.o:modify.c
        gcc -c modify.c -o modify.o

问题:冗余代码多,因此按照如下方式解决。
版本五
obj = main.o add.o del.o modify.o
main:$(obj)
        gcc  $^ -o $@
%.o:%.c
        gcc -c $< -o $@ -I ../include

为了编写的makefile文件可以通用在任何结构目录相同的工程中,可以利用makefile常用函数解决(.cpp文件也适应),如下:

makefile常用函数:
wildcard 找到指定路径下的所有的*.c

src = $(wildcard ./*.c)
匹配替换,将%.c---> %.o

最终版本
obj = $(patsubst %.c,%.o,$(src))
gcc -o main main.c a.c b.c 
src = $(wildcard ./*.c)
obj = $(patsubst %.c,%.o,$(src))
main:$(obj)
        gcc  $^ -o $@
%.o:%.c
        gcc -c $< -o $@ -I ../include

其余参照课件。

你可能感兴趣的:(GDB&make)