[英]On linux ubuntu 16 32bit, DrPaulcarter assembly language tutorial, undefined reference error
我是匯編語言的新手,所以我正在關注Paul Carter博士的pcasm教程( http://pacman128.github.io/pcasm/ )。
完全是pdf文件( http://pacman128.github.io/static/pcasm-book.pdf )第33頁,以及本書的第23頁
我從該站點下載了Linux示例( http://pacman128.github.io/static/linux-ex.zip )
在終端我輸入
nasm -f coff first.asm
gcc -c driver.c
nasm -f coff asm_io.o
gcc -o first driver.o first.o asm_io.o
但它返回了
問題在哪里?
(屏幕快照的命令-lc無關緊要,如果沒有-lc,則返回相同的內容)
我發現錯誤來自於asm_io.asm。 您應該必須修改asm_io.asm或檢查define
行。
對於Linux, asm_io
不適用於64位。 您必須創建32位程序。 使用-m32
選項將C文件編譯為32位。 您還必須使用特殊的define -d ELF_TYPE
來匯編asm_io.asm
,以便在Linux上運行。 不要使用coff
。 這樣的命令應該起作用:
nasm -f elf -d ELF_TYPE asm_io.asm
nasm -f elf first.asm
gcc -m32 -c driver.c
gcc -m32 -o first driver.o first.o asm_io.o
如果您真正使用的是32位Linux,則可以省略-m32
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.