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

    课堂笔记及学习笔记

    测试练习

    测试一

    • 用Vi输入图中代码,并用gcc编译
      • 通过在src目录下输入命令行gcc -I/头文件所在路径 *.c -o ../bin main完成编译。

    • 在Vi中使用K查找printf的帮助文档
      • 在文件夹中的终端输入vim main.c,再次敲击回车进入该函数的编辑界面。
      • 将光标移动到printf语句上,然后输入大写K显示帮助文档。

    测试二

    • 用gcc进行预处理,编译,汇编,链接vi输入的代码
      • 预处理: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

    测试三

    • 1.用gcc -g编译vi输入的代码
      2.在main函数中设置一个行断点
      3.在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
      • 打开终端输入gcc -g *.c -o test生成一个可执行gdb文件test
      • 输入gdb test进入gdb调试模式,再输入l显示test文件内容。
      • 在test中写入一个for(i=0;i<5322;i++)的空循环用来检测断点。
      • 在gdb调试窗口输入b main在主函数第一行设置一个断点
      • 输入b 6 if i==2661即在第2661次循环处设置另一个断点。
      • 输入info break显示断点信息
      • 输入r运行程序,遇到断点会显示断点内容,因为该循环设置为空,所以循环处断点没有内容显示。

    测试四

    • 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?提交静态库生成和调用过程截图(一定包含条件断点的)
      • 输入gcc -c -I/头文件所在路径 add.c sub.c mul.c div.c生成.o文件
      • 输入ar rcvs libmymath.a add.o sub.o mul.o div.o生成静态库
      • 输入gcc main.c -o main -I/头文件所在路径 -L.-lmymath生成可执行文件main

    测试五

    • 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
      • 输入gcc -fPIC -I/头文件所在路径 add.c sub.c mul.c div.c生成.o文件
      • 输入ar shared libmymath.so add.o sub.o mul.o div.o生成静态库
      • 输入gcc main.c -o main -I/头文件所在路径 -L.-lmymath生成可执行文件main

    测试六

    • 写出编译上面vi编辑代码的makefile(注意gcc前用tab键填充),编译出来的目标文件为testmymath, 只用显式规则就可以
      • 新建文件makefile,编辑代码
    testmymath:main.o add.o sub.o mul.o div.o
    	gcc main.o add.o sub.o mul.o div.o -o testmymath
    main.o:main.c head.h
    	gcc -c main.c
    add.o:add.c head.h
    	gcc -c add.c
    sub.o:sub.c head.h
    	gcc -c sub.c
    mul.o:mul.c head.h
    	gcc -c mul.c
    div.o:div.c head.h
    	gcc -c div.c
    
    • 在命令行输入make生成目标文件testmymath

    学习中问题及解决

    • 问题1:

    • 解决方法:在main.c中加入头文件引用#include'head.h'

    • 问题2:

    • 解决方法:将makefile放入src文件夹中,并在src路径中输入make

  • 相关阅读:
    vim常用命令集(摘自鸟哥私房菜)
    LINUX下把多行文件合并成一行,并组装成SQL
    UVA 10148 Advertisement (贪心 + 区间选点问题)
    linux环境应用程序LOG日志打印(C语言)
    SharePoint 2013 Nintex Workflow 工作流帮助(三)
    SharePoint 2013 Nintex Workflow 工作流帮助(二)
    SharePoint 2013 Nintex Workflow 工作流帮助(一)
    SharePoint表单和工作流
    SharePoint表单和工作流
    SharePoint表单和工作流
  • 原文地址:https://www.cnblogs.com/wangyaojia/p/9694158.html
Copyright © 2011-2022 走看看