[問題] 用C編譯器所產生的組語不能編譯

看板ASM (組合語言)作者 (:))時間16年前 (2008/11/06 00:49), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串1/1
※ [本文轉錄自 C_and_CPP 看板] 作者: typecommand (:)) 看板: C_and_CPP 標題: [問題] 用C編譯器所產生的組語不能編譯 時間: Thu Nov 6 00:49:16 2008 在下用gcc or arm-linux-gcc將c program (hello world) 直接產生assembly code (gcc -S main.c or arm-linux-gcc -S main.c) 接下來就執行如下的動作 as or arm-linux-as -o main.o main.s 沒有錯誤訊息 ld or arm-linux-ld -o main main.o 錯誤訊息如下 arm-linux-ld: warning: cannot find entry symbol _start; defaulting to 00008074 main.o: In function 'main': main.o(.text+0x10): undefined reference to 'printf' 請問各位高手,要如何編譯由gcc編譯器所產生的assembly code,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.108.117 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.108.117

11/06 11:38, , 1F
你沒有 link c library
11/06 11:38, 1F

11/06 11:40, , 2F
link 時加上 -lc
11/06 11:40, 2F

11/06 11:41, , 3F
如果出現沒有此檔案
11/06 11:41, 3F

11/06 11:41, , 4F
再加上 -dynamic-linker /lib/ld-linux.so.2 在 link
11/06 11:41, 4F

11/06 11:41, , 5F
不過 ... 把 _start 改成 main, 用 gcc 就可以編了
11/06 11:41, 5F

11/08 12:16, , 6F
感謝樓上大大解惑,我用gcc編組語就ok了
11/08 12:16, 6F
文章代碼(AID): #194SwdCA (ASM)
文章代碼(AID): #194SwdCA (ASM)