macos - 由于 libSystem.dylib,程序集的链接失败
问题描述
我正在编写一些非常基本的汇编程序用于学习目的。我在装有 Intel Core i7 和 Big Sur 的 Macbook 上。
考虑以下:
.data #start data segment
x:
.long 1
.long 1
.long 2
.long 38
sum:
.long 0
.text #start of code segment
.globl _start
_start:
movl $4, %eax # EAX will serve as a number of elements remained
mov $0, %ebx # EBX will store the sum
mov $x, %ecx # ECX will point to the current element to be summed
top: addl (%ecx), %ebx
dec %eax
jnz top
addl $4, %ecx
done: movl %ebx, sum(%rip) #result in sum :)
如果我编译它:
as sum.s -g -o sum.o
它有效,但链接阶段抱怨:
ld -e _start sum.o -o sum ~/D/test
ld: dynamic main executables must link with libSystem.dylib for architecture x86_64
我该如何解决这个问题?为什么在这种特定情况下需要它?
如果一个简单的解决方案是使用 x86_32,我会非常满意,但我不知道如何告诉它像这样组装和链接。
解决方案
推荐阅读
- javascript - 在 JavaScript 中的元素之前插入节点
- java - Hibernate 不能映射到表?
- javascript - 如何使用 Cloudflare worker 解决重定向 301
- python - 如果列表中的值在另一列中,则 Pyspark 更改列值
- dart - Dart - 什么可能导致流关闭或返回?有没有办法强制它保持打开状态?
- oauth-2.0 - 由于权限被拒绝,无法将 LUIS azure 帐户分配给应用程序
- android - Android 跨区文本在 TextView 上为空白
- database - VB.NET/MS ACCESS 显示来自查询的数据
- laravel - Symfony\Component\Debug\Exception\FatalErrorException laravel 服务器上的错误
- linux - 为什么在 `syscall` 的输入停止期间修改 rax?