zoukankan      html  css  js  c++  java
  • # 2018-2019-1 20165206 《信息安全系统设计基础》第1周学习总结

    2018-2019-1 20165206 《信息安全系统设计基础》第1周学习总结

    教材学习内容总结

    - gcc编译:

    预处理:gcc -E hello.c -o hello.i

    编译:gcc -S hello.i -o hello.s

    汇编:gcc -c hello.s -o hello.o

    链接:gcc hello.o -o hello

    - gdb调试:

    编译生成可执行文件:gcc -g hello.c -o hello

    进入gdb调试界面:gdb test

    部分常用指令:

    查看代码(默认10行):list

    设置行断点:break 5
    (停在第5行)

    设置条件断点:break 5 if n=6
    (如果n的值为6,则程序运行到第5行停止)

    执行下一行:next

    继续运行:continue

    帮助信息:help

    开始运行程序:run

    清除断点:clear

    退出:quit

    参考:linux下如何使用gdb调试

    - 静态库

    生成.o文件:gcc -c -I/头文件所在路径 add.c sub.c mul.c div.c

    生成静态库:ar rcvs libmath.a add.o sub.o mul.o div.o

    生成可执行文件main:gcc main.c -o main -I/头文件所在路径 -L. -lmath

    - 动态库

    生成.o文件:gcc -fPIC -c -I/头文件所在路径 add.c sub.c mul.c div.c

    生成动态库:gcc -shared -o mymath.so add.o sub.o mul.o div.o

    将文件libmath.so复制到目录/lib中

    生成可执行文件main:gcc main.c -o main -I/头文件所在路径 -L.lmath

    - Makefile

    创建:vim Makefile

    - 教材学习中的问题和解决过程

    • 问题1:a.out是什么?有什么含义嘛?

    • 问题1解决方案:a.out 是linux/unix环境下gcc编译源代码(c/c++)并连接产生的默认执行文件名。a.out是由OMAGIC, NMAGIC, QMAGIC, 或者 ZMAGIC发展过来的一种可执行文件格式。一个典型的a.out文件由一下7部分组成:exec header:文件头、text segment:代码段、data segment:数据段、text relocations:代码重定向
      、data relocations:数据重定向、symbol table:符号表、string table:字符串表。

    - 代码调试中的问题和解决过程

    • 问题1:编译main.c时报错

    • 问题1解决方案:要编译包括各个函数在内的所有.c文件,*.c

    • 问题2:链接时不成功,报错。

    • 问题2解决方案:要将包括4个函数在内的所有.o文件都放到bin文件夹中才可以。

    • 问题3:运行Makefile时报错。

    • 问题3解决方案:书写Makefile时要用Tab空行后再书写命令。

    感悟

    这周的学习困难不少,收获也是挺大的。知道了一些在Linux下c语言文件处理的操作,以及一些相关知识。新的学期新的挑战,继续加油,努力学习。

  • 相关阅读:
    【原】yield的最基本用法
    【转】C#.net拖拽实现获得文件路径
    【原】.Net之美学习笔记-第1章-1.1.1值类型
    【转】怎样将DataGridView中绑定的表的列名改成中文
    【转】WPF获取外部EXE图标最简单的方法
    【转】C# Excel 导入到 Access数据库表(winForm版)
    【转】SQL2008清除日志
    【原】监视程序运行时间
    【转】MSSQL获取指定表的列名信息,描述,数据类型,长度
    【原】接口
  • 原文地址:https://www.cnblogs.com/brs666/p/9693504.html
Copyright © 2011-2022 走看看