单项选择题
一个共享库文件(.so文件)由多个模块(.o文件)生成。在生成共享库文件的过程中,需要对.o文件进行处理,以生成位置无关代码。以下有关位置无关代码(PIC)生成的叙述中,错误的是()。
A.模块内数据的引用无需动态链接器进行重定位,因为引用与定义间相对位置固定
B.模块外数据的引用需要动态链接器进行重定位,重定位时在GOT中填入外部数据的地址
C.模块内函数之间的调用可用PC相对地址实现,无需动态链接器进行重定位
D.模块间函数调用需要动态链接器进行重定位,重定位时在GOT和PLT中填入相应内容
点击查看答案
相关考题
-
单项选择题
以下是有关静态链接和动态链接比较的叙述,其中错误的是()。
A.静态库函数更新后需对程序重新编译和链接,而共享库函数更新后程序无需重新编译和链接
B.静态库函数代码包含在可执行目标文件中,而共享库函数代码不包含在可执行目标文件中
C.静态链接情况下静态库函数在加载时被链接,动态链接情况下共享库函数可在加载或运行时被链接
D.静态库函数代码包含在进程代码段中,而共享库函数代码不包含在进程代码段中 -
单项选择题
以下是有关动态链接及其所链接的共享库以及动态链接生成的可执行目标文件的叙述,其中错误的是()。
A.可执行目标文件在加载或执行时,系统将会调出动态链接器利用共享库对其进行动态链接
B.生成的可执行目标文件是部分链接的,也即,其中还有部分引用没有进行重定位
C.共享库在Linux下称为动态共享对象(.so),在Windows下称为动态链接库(.dll)
D.可执行目标文件由动态链接器对可重定位目标文件和共享库中部分信息进行链接而成 -
单项选择题
以下是在Linux系统中启动并加载可执行目标文件过程中shell命令行解释程序所做的部分操作:①构造构造argv和envp ②调用fork()系统调用函数③调用execve()系统调用函数④读入命令(可执行文件名)及参数启动并加载可执行目标文件的正确步骤是()。
A.①→②→③→④
B.④→①→②→③
C.④→①→③→②
D.②→④→①→③
