-1
我想使用gcc编译下面的汇编代码段。我终于明白它编译的是一个目标文件,但是当我尝试运行它时,它会返回一个错误,说'无法执行二进制文件'。我在Windows 10版本1511无法执行二进制文件(GCC for windows)
我使用MSYS终端,并通过输入
gcc -c main.s -o main.o
编译我试图通过进入
./main.o
执行该文件,我找回了错误
./main.o: ./main.o: cannot execute binary file
汇编代码是:
.section .text
.global main
main:
mov $4,%eax
mov $1,%ebx
mov $message,%ecx
mov msglength,%edx
int $0x80
mov $1, %eax
mov $0, %ebx
int $0x80
.section .data
message: .ascii "Hello world!"
msglength: .word 12
任何帮助将不胜感激。
你只是编译,而不是链接。要么'ld'会有帮助,要么在输出中没有指定.o – Tommylee2k
这不是在输出中指定.o的情况,不要在编译时使用-c –
@dwelch如果我不使用-c I得到一个错误,说:“未定义引用'WinMain @ 16 ... ld返回1退出状态' –