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

  • 相关阅读:
    迭代器、生成器、内置函数
    函数
    文件操作
    使用 java 做爬虫的简单例子
    关于 spring 使用 mongodb 的 mongotemplate 对象操作数据库,对象注入问题(即该对象能否正常的调用相应的CRUD方法来处理数据)
    eclipse 使用 “全局搜索” 失灵的解决方法
    使用 Qrcode 生成中间带 logo 的二维码!
    将 BufferedImage 对象图片,转成 Base64 编码给前端<img src="编码"/>展示图片用
    使用 Qrcode 生成二维码
    链接转化成二维码
  • 原文地址:https://www.cnblogs.com/wangyaojia/p/9694158.html
Copyright © 2011-2022 走看看