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/2002/220/20

参考资料

  • 《深入理解计算机系统V3》学习指导

转载于:https://www.cnblogs.com/20165203-xyx/p/9728474.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普通计算机怎么算根号_大学专业介绍 | 计算机专业的真实就业情况

前两天给大家简单介绍了近些年比较火的计算机类相关专业具体都有哪些不同,以及就业时的行业或者岗位的侧重点。今天呢我们继续这个话题,来聊一聊整个计算机相关专业在学习和就业过程中大概是什么样子的,希望能够给大家提供一些实实在在的参考…

设计模式总结篇系列:工厂方法模式(Factory Method)

工厂方法模式适合于对实现了同一接口或继承了同一父类的一些类进行实例的创建。一般是通过定义一个工厂类,并在其方法中实现对具有上述特点的类对象的创建。 根据具体产生类对象的方法定义形式,又可以将其分为普通工厂方法模式、多个工厂方法模式和静态工…

高新园区到大连计算机学校,大连高新区中心小学

大连市高新区中心小学简介:大连市高新区中心小学始建于2009年9月,是大连高新技术产业园区筹建的第一所直属公办学校。学校现拥有2000多名学生,87名教职员工。学校确定了“办诗韵教育,让每个孩子都幸福的教育理念”,通过…

java基础之匿名内部类

内部类:   概述: 类里边还有一个类, 里边那个类叫内部类, 外边那个类叫外部类.   分类:  成员内部类: 定义在成员位置的内部类.  局部内部类: 定义在局部位置的内部类. 格式:   new 类名或者接口名(){     //重写类或者接口中 所有的 抽象方法;   };本质:  就…

0限流电阻 stm32_上/下拉电阻

除了前一节讨论的拉电阻基本使用方法外,上拉电阻也可以提升高电平的电压阈值,以便于前后级信号相匹配,比如,TTL逻辑电平驱动CMOS逻辑电平时,我们通常会添加一个上拉电阻R1,如下图所示:But Why&a…

天地与我并存/万物与我为一 2

http://blog.sina.com.cn/s/blog_17e792e010102y4lu.html 庖丁解牛 先秦:庄周 吾生也有涯,而知也无涯 。以有涯随无涯,殆已!已而为知者,殆而已矣!为善无近名,为恶无近刑。缘督以为经&#xff0c…

网段和子网的区别_电焊石笼网与普通石笼网区别

对于石笼网,每个人都会想到在河中,桥梁附近和大坝上充满石头的笼子结构。今天,我们谈论的是石笼网的一种电焊石笼网,它也是一种常见的石笼网,也被称为六边形石笼网。其功能与石笼网相同,但用法与普通石笼网…

jquery $(document).ready() 与window.onload的区别

转载博客:http://www.jb51.net/article/21628.htm Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的。 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后…

小学三年级上册计算机计划,小学三年级数学上册教学计划

小学三年级数学上册教学计划一、班级情况分析这一学期我继续担任三年级数学教学工作,本班现有学生9人,其中男生3人,女生6人。三年级学生已经有两年的数学学习经历,对一些基础性的数学知识有了初步的认识。学生已经比较习惯于新教材…

centos7查看当前cpu运行模式_杂集:centos7中设置服务开机自启的两种方法,欢迎补充...

前言:在日常使用linux系统过程中,安装服务后系统不会自动启动服务的。就算手动启动了服务,只是当前生效,一旦服务器重启后,系统不会自动启动这些服务。如果每次重启服务器都要自己手动启动这些服务,一台还阔…

Sort HDU5884(二分+多叉哈夫曼树)

HDU5884 Sort 题意:有n个序列要进行归并,每次归并的代价是两个序列的长度的和,要求最终的代价不能超过规定的T,求在此前提下一次能同时进行归并的序列的个数k。 思路:还是太单纯,看完题目一直以为要用归并排…

python来源是什么_python起源?为什么使用python?直至爱上python的五个理由

原标题:python起源?为什么使用python?直至爱上python的五个理由Python的创始人,吉多范罗苏姆,是一名荷兰计算机程序员,他作为 Python 程序设计语言的作者而为人们熟知。在 Python 社区,吉多范罗…

Linux系统(五)负载均衡LVS集群之DR模式

序言 DR模式是lvs集群中三种负载均衡模式的其中一种,那么上一篇中我写啦关于NAT模式的搭建与原理,为什么还要有DR模式与IP隧道模式呢? 首先我们来看3张图。LVS/NAT模式如下图: LVS/IP隧道模式,如下图: LVS/…

Redux API之applyMiddleware

applyMiddleware(...middlewares) 使用包含自定义功能的 middleware 来扩展 Redux 是一种推荐的方式。Middleware 可以让你包装 store 的dispatch 方法来达到你想要的目的。同时, middleware 还拥有“可组合”这一关键特性。多个 middleware 可以被组合到一起使用&a…

计算机2018创业方向,推荐2018年创业的方向

原标题:推荐2018年创业的方向1 新电商传统的零售业收到互联网电商的重冲击,从而进行线上线下的结合是必然的趋势,新零售,新电商,是几千万零售企业成功转型的必然之路,学习一套全面的新电商转型的方法&#…

包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel

详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel注意:下列教程为 Windows7 64位;Windows 10有部分步骤有差异,请参考使用!01 下载Python程序安装包首先前往Python官网 www.python.org,进入官网点击 Downloads,然后点击 W…

Activity、Fragment、Dialog基类简单整理

版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 这里简单记录下Activity、Fragment、Dialog基类中的常规写法,后续根据项目需求进行相应的扩展。 BaseActivity.java package com.why.project.myapptemplet.activity;impo…

request重定向_golang不想http自动处理重定向的解决方案

前言有时候发送http请求不想让库自动帮忙处理重定向,库里面默认的是会把所有重定向都完成一遍,结果就是最后一个没有重定向的请求的结果。因此需要一种方案直接获取首次访问的结果,不走重定向。go的http库里面是使用如下代码检查重定向的&…

C语言项目开发-项目架构和编程命名规范

一个项目的流程:1、公司市场人员与客户交流,了解客户、引导客户使用公司最优资源并产出一份市场需求文档 2、公司需求人员(BA)与客户交流,了解客户需求并产出一个软件需求文档 3、项目经理、开发小组成员、需求人员&am…

ajax登录验证的原理,ajax用户登录验证-get和post提交方式,与工作原理—2018-8-15...

ajax用户登录验证:实例html>Ajax实战:表单验证用户登录邮箱: 密码: 提交let btn document.getElementsByTagName(button)[0];btn.onclick function () {//1.创建xhr对象let xhr new XMLHttpRequest();//2.监听响应状态xhr.onreadystatechange function(){// …