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


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


    教材内容总结

     GCC编译

    1.单文件

    • 预处理: 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 
    • 或者直接用ESC.iso

    2.多模块

    一起编译: gcc testa.c testb.c -o test 或者 gcc *.c -o test  分别编译各个源文件,之后对编译后输出的目标文件链接

    3.-I参数

    .h文件放在include中,.c文件放入src中 用于指明头文件路径*

    GDB命令行界面使用技巧

    • 条件断点
    • 设置断点:b 5(如果要在第五行断点)
    • 条件断点:b 5 if i=5
    • 命令补全:TAB
    • 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 
    • 调用:先后使用 gcc main.c -o main -I/头文件所在路径 -L. -lmath 和 ./main 来生成main文件并调用静态库执行文件

    动态库 生成:

    • 生成四个文件: 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 
    • 调用: gcc -I/头文件所在路径 -o main main.c -L. -lmath 

    MakeFile

    • 创建:

      •  vi makefile 
    • 书写:

      • targets :  prerequisites 
      • 或者targets :  prerequisites  ;  command 

    学习过程中遇到的问题


    • 问题1:fatal error:找不到head.h

      • 解决方案:在上级目录中输入 gcc src/main.c -o src/main lib/libmath.a -I include 生成main文件
    • 问题2:对于计算机运行代码的原理仍存在不理解,不熟悉

      • 解决方案:记主ESC、ISO,

        • 预处理:gcc -E hello.c -o hello.i
        • 编译:gcc -S hello.i -o hello.s
        • 汇编:gcc -c hello.s -o hello.o

        并多动手测试,不局限于课程中的案例。


    学习进度条

     代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
    目标 5000行 30篇 400小时  
    第一周 115/115 1/1 5/5  


        

  • 相关阅读:
    Linux文件系统结构
    JAVA实现上传下载共享文件
    JAVA 实现通过URL下载文件到本地库
    使用SoapUI 测试 Web Service
    DB2存储过程实现查询表数据,生成动态SQL,并执行
    DB2查看表空间大小及使用情况
    Spring使用总结
    Commons-logging + Log4j
    JAVA生成EXCEL图表
    html5离线缓存原理
  • 原文地址:https://www.cnblogs.com/FenixRen/p/9693576.html
Copyright © 2020-2023  润新知