共享对象、代码模型及优化策略
1. 动态链接问题及解决办法
在进行链接操作时,如果没有提供合适的动态链接器,且 ELF 元数据中没有正确的链接器路径,就会出现问题。解决该问题的方法是使用合适的动态链接器路径重新链接目标文件。例如,在特定的 Linux 系统中,动态链接器路径为 /lib64/ld-linux-x86-64.so.2 。
2. 访问外部变量
为了展示如何访问外部变量,我们将消息字符串存放在主可执行文件中,其他代码保持不变。以下是示例代码:
- 主文件 ex2-main.asm
extern _GLOBAL_OFFSET_TABLE_
global _start
extern sofun
global msg:data (msg.end - msg)
section .rodata
msg: db "SO function called -- message is stored in 'main'", 10
.end:
section .text
_start:
call sofun wrt ..plt
mov rdi, 0
mov rax, 60
syscall
- 库文件
ex2-lib.asm
extern _GLOBAL_OFFSET_TABLE_
global sofu
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



