题目内容 (请给出正确答案)
[主观题]

假定a和b是可重定位目标文件或静态库文件,a→b表示b中定义了一个被a引用的符号。对于以下每一小

题出现的情况,给出一个最短命令行(含有最少数量的可重定位目标

文件或静态库文件参数),使得链接器能够解析所有符号引用。

(I ) p.o→libx.a→liby.a→ p.o

(2) p.o→libx.a→liby.a 同时 liby.a→libx.a

(3) p.o→libx.a→liby.a→ libza 同时 liby.a→ libx.a→libz.a

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“假定a和b是可重定位目标文件或静态库文件,a→b表示b中定义…”相关的问题

第1题

假定int bu[2]={10,50};所定义的buf被分配在静态数据区,其首地址为0x8048930,bufp1为全局变量,也被分配在静态数据区。以下关于“bufp1=&buf[1];”的重定位的描述中,错误的是()。
假定int bu[2]={10,50};所定义的buf被分配在静态数据区,其首地址为0x8048930,bufp1为全局变量,也被分配在静态数据区。以下关于“bufp1=&buf[1];”的重定位的描述中,错误的是()。

A.在可重定位目标文件的.rel.data节中,有一个与bufp1相关的重定位条目

B.在可重定位目标文件的.rel.text节中,有一个与buf相关的重定位条目

C.在相应的重定位条目中,对bufpl和buf的引用均采用绝对地址方式

D.可用一条mov指令实现该赋值语句,该mov指令中有两处需要重定位

点击查看答案

第2题

假定int buf[2]={10,50};所定义的buf被分配在静态数据区,其首地址为0x8048930,bufp1为全局变量,被分配在buf随后的存储空间。以下关于“int*bufp1=&buf[1];”的重定位的描述中,错误的是()。
假定int buf[2]={10,50};所定义的buf被分配在静态数据区,其首地址为0x8048930,bufp1为全局变量,被分配在buf随后的存储空间。以下关于“int*bufp1=&buf[1];”的重定位的描述中,错误的是()。

A.bufpl的地址为0x8048938,重定位前的内容为04H、00H、00H、00H

B.在可重定位目标文件的.rel.data节中,有一个引用buf的重定位条目

C.在相应的重定位条目中,对bufp1和buf的引用均采用绝对地址方式

D.在可执行目标文件中,地址0x8048938开始的4个字节为34H、89H、04H,08H

点击查看答案

第3题

以下每一小题给出了两个源程序文件,它们被分别编译生成可重定位目标模块m1.o和m2.0。在模块m
以下每一小题给出了两个源程序文件,它们被分别编译生成可重定位目标模块m1.o和m2.0。在模块mj中对符号x的任意引用与模块mi中定义的符号x关联记为REF(mj.x) -DEF(mi.x)。请在下列空格处填写模块名和符号可以说明给出的引用符号所关联的定义符号。若发生链接错误,则说明其原因;若从多个定义符号中任选,则给出全部可能的定义符号,若是局部变量,则说明不存在关联。

点击查看答案

第4题

以下关于ELF可重定位和可执行两种目标文件格式比较的叙述中,错误的是()。
以下关于ELF可重定位和可执行两种目标文件格式比较的叙述中,错误的是()。

A.可重定位目标文件中有可重定位节.rel.text和.rel.data.在可执行目标文件中则没有

B.可重定位目标文件中有初始化程序段.init节,在可执行目标文件中则没有

C.可执行目标文件中有程序头表(段头表),在可重定位目标文件中则没有

D.可执行目标文件的ELF头中有具体程序人口地址,在可重定位目标文件中则为0

点击查看答案

第5题

以下关于ELF目标文件格式的叙述中,错误的是()。
以下关于ELF目标文件格式的叙述中,错误的是()。

A.可重定位目标文件是ELF格式的链接视图,由不同的节组成

B.可执行目标文件是ELF格式的执行视图,由不同的段组成

C.可重定位和可执行两种目标文件中的数据都是二进制表示的补码形式

D.可重定位和可执行两种目标文件中的代码都是二进制表示的指令形式

点击查看答案

第6题

以下有关动态链接及其所链接的共享库以及动态链接生成的可执行目标文件的叙述中,错误的是()。
以下有关动态链接及其所链接的共享库以及动态链接生成的可执行目标文件的叙述中,错误的是()。

A.共享库在Linux下称为动态共享对象(.so),在Windows下称为动态链接库(.dll)

B.生成的可执行目标文件是部分链接的,也即其中还有部分引用没有进行重定位

C.可执行目标文件由动态链接器对可重定位目标文件和共享库中部分信息进行链接而成

D.可执行目标文件在加载或执行时,系统将会调出动态链接器利用共享库对其进行动态链接

点击查看答案

第7题

以下关于链接器基本功能的叙述中,错误的是()。
以下关于链接器基本功能的叙述中,错误的是()。

A.将每个符号引用与唯一的一个符号定义进行关联.

B.将每个.o文件中的.data节、.text节和.bss节分别合并

C.确定每个符号(包括全局变量和局部变量)的首地址

D.根据所定义符号的首地址对符号的引用进行重定位

点击查看答案

第8题

以下有关重定位信息的叙述中,错误的是()。
以下有关重定位信息的叙述中,错误的是()。

A.重定位信息是由编译器在生成汇编指令时产生的

B.指令中的重定位信息在可重定位目标文件的.rel.text节中

C.数据中的重定位信息在可重定位目标文件的.rel.data节中

D.重定位信息包含需要重定位的位置、绑定的符号和重定位类型

点击查看答案

第9题

一个共享库文件(.so文件)由多个模块(.o文件)生成:在生成共享阵文件的过程中,需要对.o文件进行处理,以生成位置无关代码。以下有关位置无关代码(PIC)生成的叙述中,错误的是()。
一个共享库文件(.so文件)由多个模块(.o文件)生成:在生成共享阵文件的过程中,需要对.o文件进行处理,以生成位置无关代码。以下有关位置无关代码(PIC)生成的叙述中,错误的是()。

A.模块内函数之间的调用可用PC相对地址实现.无需动态链接器进行重定位

B.模块内数据的引用无需动态链接器进行重定位,因为引用与定义间相对位置固定

C.模块外数据的引用需要动态链接器进行重定位,重定位时在GOT中填入外部数据的地址

D.模块间函数调用需要动态链接器进行重定位,重定位时在GOT和PLT中填入相应内容

点击查看答案

第10题

假设一个C语言程序有两个源文件: main.c 和test.c,它们的内容如图4.1所示。对于编译生成的可重

假设一个C语言程序有两个源文件: main.c 和test.c,它们的内容如图4.1所示。

对于编译生成的可重定位目标文件test.o,填写表4.1中各符号的情况,说明每个符号是否出现在test.o的符号表(.symtab节)中,如果是,定义该符号的模块是main.o还是test.o?该符号的类型是全局、外部,还是本地符号?该符号出现在相应定义模块的哪个节(.text、.data或,bss) ?

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信