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 |
参考资料
- 《深入理解计算机系统V3》学习指导
转载于:https://www.cnblogs.com/20165203-xyx/p/9728474.html
2018-2019 20165203 《信息安全系统设计基础》第一周学习总结相关推荐
- 信息安全系统设计基础第一周学习总结
学习计时:共15小时 读书:1 代码:10 作业:13 博客:1 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令 ...
- 20135323符运锦---信息安全系统设计基础第一周学习总结
学习计时:共15小时 读书:1小时 代码:8小时 作业:4小时 博客:2小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Li ...
- 20135304刘世鹏——信息安全系统设计基础第一周学习总结
第一节 Linux系统简介 一.Linux是一个操作系统 1. Linux 本身只是操作系统的内核.内核是使其他程序能够运行的基础. 它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序 实 ...
- LINUX信息安全系统设计基础第一周学习总结
Linux系统简介 一.实验内容 了解 Linux 的历史,Linux 与 Windows 的区别等入门知识. 二.实验要求 阅读linux简介与历史 三.实验步骤 二.Linux 与 Window ...
- 20135306-信息安全系统设计基础第一周学习总结
第二周(9.14-9.20): 学习计时:共14小时 读书:2h 代码:4h 作业:4h 博客:4h 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3 ...
- 20135219洪韶武——信息安全系统设计基础第九周学习总结
信息安全系统设计基础第九周学习总结 学习时间:7小时 学习内容:课本第十章 一.第十章知识点(1~6) 第一部分:文件的概念及相关操作 1.每个unix文件都是一个m字节的序列:所有I/O设备如网络. ...
- 信息安全系统设计基础第二周学习总结
信息安全系统设计基础第二周学习总结 学习目标 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 ...
- 信息安全系统设计基础第九周学习总结
第十章 系统级I/O的实践 学习目标: 代码阅读理解: 1.编译运行代码 2.使用man学习理解相关系统调用, 理解参数.返回值的含义 3.会用grep -nr xxx /usr/include 查宏 ...
- 20135219洪韶武——信息安全系统设计基础第四周学习总结
信息安全系统设计基础第四周学习总结 学习任务:教材第三章 学习时间:10小时 学习内容 一.教材知识梳理 1.程序编码与机器级代码 程序编码: gcc编译器,将源代码转化成可执行代码,C预处理器-汇编 ...
- 20135203齐岳 信息安全系统设计基础第四周学习总结
20135203齐岳 信息安全系统设计基础第四周学习总结 学习计时:共17小时 读书:10 代码:1 作业:3 博客:3 一.学习目标 理解逆向的概念以及 掌握X86汇编基础,能够阅读(反)汇编代码 ...
最新文章
- 【数据挖掘】神经网络 后向传播算法 向前传播输入 案例计算分析 ( 网络拓扑 | 输入层计算 | 隐藏层计算 | 输出层计算 )
- Divan and bitwise operations 异或,同或,组合数学(1500)
- tfs 内网和外网切换的方法。
- js 可以做什么东西_Deno需要做什么才能取代Node.js?
- phpcms的一些问题 乱码,安装
- 获取Repeater中Footer/HeaderTemplate 中的控件
- 腾讯体育php面试题,腾讯php程序员面试题目及答案分享!
- matlab 神经网络设计与应用,MATLAB 神经网络设计与应用(最新版)
- 【Pycharm】笔记内容010:记录Pycharm报错“Can not find 程序所在目录 或者Can not run program...“的问题解决
- rabbitmq高可用集群搭建踩坑
- WSO2一般使用教程
- win10打开计算机代码,Win10开不了机错误代码0xc0000428三种解决方法
- wifi营销小程序源码+搭建教程
- linux 批量convert,使用convert来批量处理图片
- 【总结】1438- 你想知道的前后端协作规范都在这了
- 计算机软件水平考试分类程序员,历年计算机软件水平考试程序员部分真题
- Aspose.Words模板创建Word【一】
- R语言——Error in plot.window(...) : ‘xlim‘值不能是无限的
- ES dense_vector 计算余弦相似度
- Java JDK 1.8 新特性 Stream流