相关疑难解决方法(0)

如何在 m1 macbook 上编译arm程序集

我对组装完全陌生,想学习手臂组装(仅仅因为我拥有一台 m1 mac)。我在网上找不到很多资源,这就是我来这里的原因。我的代码如下(文件名为first.asm):

global _main
section .text

_main: 
    mov r7, 0x4
    mov r0, 1
    ldr r1, message
    mov r2, 13
    swi 0

.section .data
    message: .ascii "Hello, World\n"
Run Code Online (Sandbox Code Playgroud)

当我使用

as first.asm -o hello.o 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

first.asm:2:1: error: invalid instruction mnemonic 'global'
global _main
^~~~~~
first.asm:3:1: error: invalid instruction mnemonic 'section'
section .text
^~~~~~~
first.asm:6:2: error: unknown use of instruction mnemonic without a size suffix
        mov r7, 0x4
        ^
first.asm:7:2: error: unknown use of instruction mnemonic without a size suffix
        mov r0, …
Run Code Online (Sandbox Code Playgroud)

macos assembly arm apple-m1

18
推荐指数
2
解决办法
3万
查看次数

编译C程序中体系结构x86_64的未定义符号

我有一个简单的程序,如 demo_use.c

#include "libhello.h"

int main(void) {
 hello();
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

libhello.h

void hello(void);
Run Code Online (Sandbox Code Playgroud)

libhello.c

#include <stdio.h>

void hello(void) {
  printf("Hello, library world.\n");
}
Run Code Online (Sandbox Code Playgroud)

我已经在终端中使用了命令

gcc demo_use.c -o test
Run Code Online (Sandbox Code Playgroud)

错误 体系结构x86_64的未定义符号:“ _ hello”,

引用自:ccZdSQP3.o中的_main

ld:找不到架构x86_64的符号collect2:ld返回1退出状态

c

4
推荐指数
1
解决办法
8623
查看次数

标签 统计

apple-m1 ×1

arm ×1

assembly ×1

c ×1

macos ×1