Ubuntu 汇编代码故障
我正在学习如何组装,我遇到了一个奇怪的问题。我收到一条消息说 collect2:错误:ld返回了1个退出状态 在我收到这条信息之前,虽然我收到了一系列这样的错误Ubuntu 汇编代码故障,ubuntu,assembly,Ubuntu,Assembly,我正在学习如何组装,我遇到了一个奇怪的问题。我收到一条消息说 collect2:错误:ld返回了1个退出状态 在我收到这条信息之前,虽然我收到了一系列这样的错误 \u start': Name.asm:(.text+0x0):启动的多个定义 /usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位0具有无效的符号索引11 /usr/bin/ld:/usr/lib/debug/usr/lib/x86_6
\u start':
Name.asm:(.text+0x0):启动的多个定义
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位0具有无效的符号索引11
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位1具有无效的符号索引12
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位2具有无效的符号索引2
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位3具有无效的符号索引2
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位4具有无效的符号索引11
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位5具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位6具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位7具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位8具有无效的符号索引12
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位9具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位10具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位11具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位12具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位13具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位14具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位15具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位16具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位17具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位18具有无效的符号索引13
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info):重新定位19具有无效的符号索引21
/usr/bin/ld:/usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_行):重新定位0具有无效的符号索引2
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/crt1.o:/build/buildd/eglibc-2.19/csu/。/sysdeps/x86_64/start.S:118:首先在这里定义
/输入文件Name.o'的usr/bin/ld:i386体系结构与i386:x86-64输出不兼容
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/crt1.o:在函数中
\u start':
(.text+0x20):对“main”的未定义引用
collect2:错误:ld返回了1个退出状态
“u start”的多个定义
我完全不知所措。我将在下面发布我的代码,我希望这只是一个小错误
section .data ;Data segment
userMsg db 'Please enter your name : ' ;Ask the user to enter a number
lenUserMsg equ $-userMsg ;The length of the message
dispMsg db 'Hi my name is'
lenDispMsg equ $-dispMsg
section .bss ;Uninitialized data
num resb 5
section .text ;Code Segment
global _start
_start: ;User prompt
mov eax, 4
mov ebx, 1
mov ecx, userMsg
mov edx, lenUserMsg
int 80h
;Output the message 'Your name is '
mov eax, 4
mov ebx, 1
mov ecx, dispMsg
mov edx, lenDispMsg
int 80h
;Output the name entered
mov eax, 4
mov ebx, 1
mov ecx, num
mov edx, 5
int 80h
; Exit code
mov eax, 1
mov ebx, 0
int 80h
我目前不在linux上,但可以汇编文件,使用nasm没有问题
nasm-felf32 hello.asm-ohello.obj
试试:gcc-m32 hello.obj我目前不在linux上,但可以汇编文件,使用nasm没有问题
nasm-felf32 hello.asm-ohello.obj
试试:gcc-m32 hello.obj您知道除了x86之外还有其他体系结构,对吗?此外,Ubuntu与此无关。请相应地标记您的问题。您忘记显示如何组装和链接。无论如何,问题是您链接到libc,并尝试从32位对象创建一个64位程序。使用ld-melf_i386
或gcc-m32-nostdlib
。您知道除了x86之外还有其他体系结构,对吗?此外,Ubuntu与此无关。请相应地标记您的问题。您忘记显示如何组装和链接。无论如何,问题是您链接到libc,并尝试从32位对象创建一个64位程序。使用ld-melf_i386
或gcc-m32-nostdlib
。我现在设法让它工作了,结果我把数字4搞错了,而不是3。然而,我似乎遇到了一个新问题。由于一条奇怪的消息,我无法让代码正常工作。我正在使用代码gcc-g-Wall-fno stack protector-z execstack Shellcode.c Shellcode,然后我收到一条消息,说明它无法执行i_386代码,以及关于出口1的一些信息。现在有人告诉我,这是因为我需要更空间化,但我不知道如何更空间化。我现在设法让它工作了,结果我错了4而不是3。然而,我似乎遇到了一个新问题。由于一条奇怪的消息,我无法让代码正常工作。我正在使用代码gcc-g-Wall-fno stack protector-z execstack Shellcode.c Shellcode,然后我收到一条消息,说明它无法执行i_386代码,以及关于出口1的一些信息。现在有人告诉我,这是因为我需要更具空间感,但我不知道如何更具空间感。