zoukankan      html  css  js  c++  java
  • 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  


        

  • 相关阅读:
    F2E Tool(前端工程师的工具箱)
    SQLServer 语句存档整理
    MySQL DATE_FORMAT() 函数
    sqlserver 自连接 生成一列数据
    mysql存储引擎:InnoDB和MyISAM的差别/优劣评价/评测/性能测试
    好书推荐
    Flashfxp 3.4的注册码
    mysql事务处理
    mysql 时间函数 格式化
    【转】PowerDesigner 中将Comment(注释)及Name(名称)内容互相COPY的VBS代码
  • 原文地址:https://www.cnblogs.com/FenixRen/p/9693576.html
Copyright © 2011-2022 走看看