以下有关动态链接所用共享库代码的叙述中,错误的是()。
A.共享库代码一定是位置无关代码(PIC)
B.用GCC生成共享库文件时应使用-IPIC选项
C.链接器可将共享库代码映射到不同的地址运行
D.共享库代码长度发生变化时会影响调用它的程序
- · 有3位网友选择 A,占比33.33%
- · 有3位网友选择 B,占比33.33%
- · 有3位网友选择 C,占比33.33%
A.共享库代码一定是位置无关代码(PIC)
B.用GCC生成共享库文件时应使用-IPIC选项
C.链接器可将共享库代码映射到不同的地址运行
D.共享库代码长度发生变化时会影响调用它的程序
A.将共享代码从可执行文件中分离出来形成共享库文件,在加载或执行可执行文件时进行动态链接
B.生成的共享库文件是位置无关代码(PIC),动态链接器可将共享库代码映射到任意地址运行
C.共享库中不同模块之间引用数据或调用函数时,需要使用全局偏移表(GOT)来动态填入地址
D.共享库中模块内或不同模块之间引用数据或调用函数时,都需要生成过程链接表(PLT)代码
A.A.模块内函数之间的调用可用PC相对地址实现.无需动态链接器进行重定位
B.B.模块内数据的引用无需动态链接器进行重定位,因为引用与定义间相对位置固定
C.C.模块外数据的引用需要动态链接器进行重定位,重定位时在GOT中填入外部数据的地址
D.D.模块间函数调用需要动态链接器进行重定位,重定位时在GOT和PLT中填入相应内容
A.静态库函数代码包含在进程代码段中,而共享库函数代码不包含在进程代码段中
B.静态库函数代码包含在可执行目标文件中,而共享库函数代码不包含在可执行目标文件中
C.静态库函数更新后需对程序重新编译和链接,而共享库函数更新后程序无需重新编译和链接
D.静态库函数在加载时被链接,而共享库函数可在加载或运行时被链接
A.共享库在Linux下称为动态共享对象(.so),在Windows下称为动态链接库(.dll)
B.生成的可执行目标文件是部分链接的,也即其中还有部分引用没有进行重定位
C.可执行目标文件由动态链接器对可重定位目标文件和共享库中部分信息进行链接而成
D.可执行目标文件在加载或执行时,系统将会调出动态链接器利用共享库对其进行动态链接
A.包含内核程序的代码及其所用的数据信息
B.包含所有进程可以动态链接的共享库映射区
C.包含进程现场信息,如寄存器(硬件)上下文等
D.包含进程标识信息和控制信息,如进程标识符、页表等
A.静态链接
B.动态链接
C.运行时链接
D.转移链接
A、第一步预处理,对#include、#define、#ifdef等预处理命令进行处理
B、第二步编译,将预处理结果编译转换为二进制形式的汇编语言程序代码
C、第三步汇编,将汇编语言代码汇编转换为机器指令表示的机器语言代码
D、第四步链接,将多个模块的机器语言代码链接生成可执行目标程序文件
A.编译阶段GCC要检查代码规范性、是否有语法错误等,确定代码的实际要做的工作
B.汇编阶段是把编译阶段生成的.s文件转成目标文件
C.预处理阶段,GCC编译器将代码中包含的头文件编译进来
D.GCC在编译时默认使用静态库
A.用高级语言编写的程序必须转换为机器代码才能在计算机中运行
B.机器代码通常以可执行目标文件或共享库文件形式保存在磁盘中
C.机器代码及其数据被映射到统一的虚拟地址空间即形成一个进程
D.同一个程序如果处理不同的数据集合就会对应很多不同的进程
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!