
计算机原理
dr.xun
迭代
展开
-
计算机程序的构造和解释第一章
原创 2021-10-10 20:58:42 · 188 阅读 · 0 评论 -
物理地址(MAC)
一、特性一种标识符,用来标记网络中的每个设备。 只在当前局域网有效。原创 2021-06-05 20:34:23 · 490 阅读 · 0 评论 -
采用ar制作静态库
一、认识静态库以.a作为后缀名,在Linux下一般命名为libxxx.a; 程序使用静态库时,连接器(ld)将整个libxxx.a的所有函数都复制到可执行文件中;二、优缺点优点:采用静态库时,编译成可执行文件后,运行时不依赖与该库。缺点:可执行文件较大,且静态库有变化,可执行文件得重新生成。三、如何创建和使用静态库工具:ar,将目标文件.o打包成一个单独的静态库。Linux下制作静态库的步骤:编辑源代码文件(.c、.cpp) 通过gcc -c *.c 或折g++ -c *.原创 2020-12-05 22:13:48 · 2268 阅读 · 1 评论 -
与线程相关的概念导图
原创 2020-05-01 10:40:44 · 107 阅读 · 0 评论 -
环境变量
原创 2019-06-02 16:31:02 · 372 阅读 · 0 评论 -
linux下ELF的动态链接过程
先列出书中一个例子的简单代码实现,以展示动态链接过程。Lib.h#ifndef LIB_H#define LIB_Hvoid foobar(int i);#endifLib.c#include<stdio.h>void foobar(int i){ printf("Printing from Lib.so %d\n", i);}Program...原创 2019-04-24 21:37:50 · 497 阅读 · 0 评论 -
静态链接和动态链接学习笔记
1、静态链接优缺点优点:程序模块可以独立开发和测试,提高程序的开发效率。缺点:费内存、需要更多的磁盘空间存储、模块更新和发布困难。多个程序使用相同的静态库,会导致内存中有多份相同的静态库文件指令副本。如下图,存在两份Lib.o文件。还有缺点是,静态库有一些改动,就会导致使用该静态库的所有程序需要进行重新编译和发布,带来更多的工作量。2 、动态链接解决上述问题...原创 2019-04-14 18:07:26 · 433 阅读 · 0 评论 -
程序和进程的区别
原创 2019-01-20 11:12:03 · 278 阅读 · 0 评论 -
ld链接脚本语法
ld链接脚本由一系列语句组成,分为两种:1、命令语句;2、赋值语句。与C语言有相似之处,相似点如下:这里说说命令语句的组成,一般由一个关键字和紧跟其后的参数所组成。如下表所示: 更多的ld的命令语句格式可以参考ld的使用手册。 ...原创 2019-01-20 11:01:54 · 3141 阅读 · 1 评论 -
何为静态库?
静态库可以简单地看成是一组目标文件的集合,即很多的目标文件经过打包后形成的一个文件。现实中,我们在写工程代码时,会有很多的实现文件,每个实现文件被编译后都会输出对应的.o目标文件。如果将这些零散的目标文件直接给用户使用,会在传输和版本管理上带来很大麻烦和不便。于是,人们就使用打包“ar”程序将这些目标文件进行打包和压缩,并对其进行编号和索引,以便于查找和检索,就形成了静态库文件。当我们查看...原创 2019-01-20 10:43:02 · 242 阅读 · 0 评论 -
ABI & API
1、什么是API?(代码级接口) API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。2、什么是ABI?(二进制层级接口) ABI(Application Binary Interfac...原创 2019-01-20 10:21:56 · 855 阅读 · 0 评论 -
软件结构之目标文件
原创 2018-12-23 10:56:29 · 227 阅读 · 0 评论 -
GCC编译过程,了解编译原理
说明:这篇文件是在读《程序员的自我修养——链接、装载与库》的一点笔记,权当时学习的记录。1、GCC编译过程分解以HelloWorld程序为例2、预编译规则:命令:gcc -E XXX.c -o XXX.i 3、编译词法分析、语法分析、语义分析及优化 --------------->> 汇编代码文件命令:gcc -S XXX.c -o ...原创 2018-12-09 20:00:16 · 3942 阅读 · 0 评论