assembly - 将目标文件与标准库链接的问题
问题描述
好吧,我用nasm
我test.o
的test.s
. 当我然后运行时gcc test.o
,它给了我错误消息
/usr/bin/ld: test.o: 重定位 R_X86_64_PC32 对符号 `puts@@GLIBC_2.2.5' 在制作 PIE 对象时不能使用;使用 -fPIE /usr/bin/ld 重新编译:最终链接失败:错误值 collect2:错误:ld 返回 1 退出状态
test.s:
global main
extern puts
section .text
main:
mov rdi, message
call puts
ret
message:
db "Hello World", 0
此错误消息是什么意思以及如何解决?
此外,在这种情况下,我使用gcc
将我的目标文件与标准库链接,但我如何使用它ld
来完成相同的工作?
我正在运行Ubuntu 20.04 LTS
解决方案
推荐阅读
- .net - 为什么在使用 xUnit 时强名称绕过在 AppDoman.ApplicationBase 下不起作用?
- node.js - 使用 nodejs 进行 Firebase 电话身份验证
- reactjs - 返回函数的通用 TypeScript 类型,将 ReturnType 替换为返回函数的 ReturnType
- angular - 在对象中搜索
- kotlin - 你能在 kotlin 中返回@label 一些值吗?
- mysql - connection.query(...).then 不是函数
- elasticsearch - kibana中的时间不匹配
- javascript - Onclick 事件未打开 Bootstrap 模式
- angular - 选择器“new-selector”不匹配任何元素
- php - 如何通过一个键值合并子数组并将符合条件的值推送到更深的索引子数组中?