Assembly 什么';这两者之间的区别是什么_“主要”;及;“主要”;在GNU组装中?

Assembly 什么';这两者之间的区别是什么_“主要”;及;“主要”;在GNU组装中?,assembly,gcc,x86-64,gnu,Assembly,Gcc,X86 64,Gnu,我刚刚开始自学组装 我的第一步是编写一个返回“10”的汇编代码,并用$echo$? .global _main _main: pushq %rbp movq %rsp, %rbp movl $10, %eax leave ret 这是我的代号为“ass.s”的第一个版本, 当我用gcc ass.s编译时 它不断返回错误,后跟 /usr/lib/gcc/x86_64-linux-gnu/5/../../../../

我刚刚开始自学组装
我的第一步是编写一个返回“10”的汇编代码,并用
$echo$?

.global _main

_main:
        pushq %rbp
        movq %rsp, %rbp
        movl $10, %eax
        leave
        ret
这是我的代号为“ass.s”的第一个版本,
当我用gcc ass.s编译时 它不断返回错误,后跟
/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/crt1.o:在函数
\u start':(.text+0x20):未定义对
main'的引用。

当我把代码改为

.global main

main:
        pushq %rbp
        movq %rsp, %rbp
        movl $10, %eax
        leave
        ret
它工作得很好

这两个代码之间的唯一区别是
\u main
main


有人能解释为什么主代码出现错误吗?

\u是符号名称的一部分。就像是圣诞节一样。这是一个不同的符号。但“变成符号”是如何发生错误的?@prl:对,但GNU/Linux没有在C名称前面加上
\uu
。这就是为什么
\u main
不能在Linux上工作,但在MacOS上是必需的。