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  


        

  • 相关阅读:
    python从入门到实践-5章if语句
    HiveQL:文件格式和压缩方法
    HiveQL:调优
    HiveQL:模式设计
    HiveQL:视图
    (转)配置文件.bash_profile和.bashrc的区别
    Hive-学习总结(二)
    Hive-学习总结
    MYSQL-表类型(存储引擎)的选择
    MYSQL-常用函数
  • 原文地址:https://www.cnblogs.com/FenixRen/p/9693576.html
Copyright © 2011-2022 走看看