-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退出狀態' –