zoukankan      html  css  js  c++  java
  • 20155229付钰涵 第二周课堂实践

    20155229付钰涵 第二周课堂实践

    第二周测试3-gdb测试

    (老师)建议:在使用jdb时,用打开三个标签:1、用于vi;2、用于编写代码;3、用于调试代码

    (由于还未习惯这种做法,所以我的调试还是用一个标签。)

    1. 用gcc -g编译vi输入的代码
    • 先输入gcc -g *.c -o xxx对输入的代码进行编译,再输入gdb xxx进入该代码的调试阶段。

    2. 在main函数中设置一个行断点

    ①、输入l(list)显示出整段代码②、设置断点,用b(break),如图,先对第6行和第8 行设置断点
    ③、输入r(run)运行
    ④、输入n(next)执行下一行

    3. 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点

    增加空循环

    运行到断点时,设置b if i==2614接着用n执行下一步

    第二周测试4-静态库的测试

    1.除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
    参考 c语言生成动态库

    静态库文件的命名是以lib为前缀,紧跟静态库名,扩展名为.a,创建静态库用ar命令。

    gcc -c add.c sub.c mul.c div.c
    ar rcsv libmymath.a add.o sub.o mul.o div.o

    在程序中使用静态库,在静态库前加上前缀lib,追加扩展名.a得到的静态库文件名来查找静态库文件。

    gcc main.c -o main -L. -lmymath

    第二周测试5-共享库

    1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?

    参考 静态库、共享库、动态库的创建于使用

    • 创建共享库
      -fpic表明创建position independengt code,
      gcc -fPIC -c add.c sub.c mul.c div.c
      gcc -shared -o libmymath.so add.o sub.o mul.o div.o

    重新编译链接程序,通过-l 参数指定库路径gcc -o main main.c -L. -lmymath创建好共享库后,将libmymath.so拷贝到lib或/usr/lib下

    第二周测试6-Makefile

    1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
    • 首先vim Makefile进入
    • 然后参考 makefile使用 写出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编译

    在编译中一直出错,如图

    上网查过后,发现所有命令前要输入tab

    重新编译,还是出错,然后发现应该是用vim makefile而不是vim Make file,改正后的makefile成功。

    Linux下实现od命令功能

    实现od -tx tc XXX

    od用于将指定文件内容以把进制、十进制、十六进制、浮点格式或Ascii编码字符方式显示
    命令格式

    od [<选项><参数>] [<文件名>]

    命令示例
    • od -tx为以十六进制输出,默认以四字节为一组(列)显示

    • od -tc等价于-c,选择ASCII码字符或者是转义字符

    代码运行结果

    经老师提醒,需要能读取多个文件

    修改后如图

    静态库

    动态库

    参考文献

  • 相关阅读:
    leetcode------Add Two Numbers
    leetcode------Reverse Bits
    leetcode------Edit Distance
    leetcode------Rotate Image
    leetcode------Spiral Matrix
    leetcode------Sort Colors
    [转载]C#中的WebBrowser控件的使用
    [转载]WebBrowser控件表单(form)的自动填写和提交
    通过WebBrowser获取网页验证码
    HTMLDocument命名空间/引用
  • 原文地址:https://www.cnblogs.com/fyhtvxq/p/7618004.html
Copyright © 2011-2022 走看看