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

    2018-2019-1 20165203 《信息安全系统设计基础》第一周学习总结

    教材学习内容总结

    • 编译:gcc [选项] [文件名]

    选项参数表

    参数 对应功能
    -E 仅执行编译预处理
    -S 将.c代码转换为汇编语言代码
    -c 仅执行编译操作,不进行连接操作
    -o 指定生成的输出文件
    -I (大写) 指定头文件目录
    -l 指定程序要连接的库
    -L 指定库文件所在的目录名

    注意:-I:我们平时在使用时,-I要紧跟头文件所在的地址目录: gcc -E/-S/-c/-o -I 头文件所在目录 src/ *.c bin/ *

    • 编译过程:

    1.预处理:.c文件变成.i文件
    gcc -E -I 头文件所在目录 src/ *.c -o bin/ *.i

    2.编译:.i文件变成.s文件(汇编程序)
    gcc -S -I 头文件所在目录 src/ *.i -o bin/ *.s

    3.汇编:.s文件变成.o文件
    gcc -c -I 头文件所在目录 src/ *.s -o bin/ *.o

    4.链接:.o文件变成可执行文件
    gcc *.o -o 文件名

    也可直接输入gcc *.c -o *直接编译成可执行文件

    -多模块一起编译:
    gcc test_a.c test_b.c -o test 或 gcc *.c –o test
    也可分开编译
    第一种方法编译时需要所有文件重新编译;
    第二种只重新编译修改的文件,未修改的不用重新编译。

    • 项目目录结构
    文件夹名 对应文件
    src 存放.c文件
    include 存放.h文件也就是头文件
    bin 存放项目调试之后的可运行文件
    libs 存放动态库和静态库文件
    Readme.md 阅读指南文件,包括如何使用这个程序等
    makefile 描述了整个工程的编译、链接等功能,“自动化”
    • 静态库

    步骤:
    1、输入gcc -c -I/头文件所在路径 add.c sub.c mul.c div.c生成.o文件
    2、输入ar rcvs libmath.a add.o sub.o mul.o div.o生成静态库
    3、输入gcc main.c -o main -I/头文件所在路径 -L. –lmath生成可执行文件main

    注意:-l参数用来指定程序要链接的库,-l参数紧接着就是库名。
    -L参数跟着的是库文件所在的目录名。
    gcc会在静态库名前加上前缀lib,然后追加扩展名.a得到的静态库文件名来查找静态库文件。

    • 动态库

    步骤:
    1、输入gcc -fPIC -c -I/头文件所在路径 add.c sub.c mul.c div.c生成.o文件
    2、输入gcc -shared -o libmath.so add.o sub.o mul.o div.o生成动态库
    3、将文件libmath.so复制到目录/usr/lib中后,再输入gcc main.c -o main -I/头文件所在路径 -L. lmath生成可执行文件main

    代码调试中的问题和解决过程

    Q:自己的虚拟机vim编辑器中Backspace键及方向键无法使用

    A:自己查找得知,自己安装的编辑器版本不是最新版本,输入sudo apt-get remove vim-common
    sudo apt-get install vim
    以安装最新的vim编辑器

    代码托管

    其他(感悟、思考等,可选)

    本周是第一周学习,俗话说良好的开端是成功的一半,自己根据娄老师的实验一步一步来,巩固了本周的学习,理论和实践相结合,可以更有利于知识的融会贯通。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20

    参考资料

  • 相关阅读:
    mysql8.0 一次性备份导出/导入恢复所有数据库
    访问服务器共享资源不需要输帐号和密码
    win7 系统 提示用户'sa'登录失败
    Adoquery.disablecontrols和enablecontrols
    DBGridEh 导出数据到EXCEL文件
    Microsoft SQL Server 2005资料库(数据库)卸载方法
    64位操作系统下创建组件失败的解决办法
    U盘中的文件为什么看不见?
    解决错误提示unable to invoke code completion due to errors in source cord.
    浪潮服务器Windows Server系统异常断电导致系统中CentOS7虚拟机系统崩溃无法正常启动grub2故障修复error: relocation 0x48 is not implemented yet
  • 原文地址:https://www.cnblogs.com/20165203-xyx/p/9728474.html
Copyright © 2011-2022 走看看