3

Macのターミナルで次のコードを実行しようとしています。

.section, .data

format_string:
   .asciz "My favorite number is %d!"

number:
  .long 786

.section, .text
.globl main

main:
  pushl number
 pushl $format_string  
 call printf 
  addl $8, %esp

  pushl $0
  call exit

このコードはfavorite.sという名前のファイルにあります

コマンド「gccfavorite.s-m32」を使用すると、次のメッセージが表示されます。

Undefined symbols for architecture i386:
  "_main", referenced from:
      start in crt1.10.6.o
  "exit", referenced from:
      main in ccUKdD8O.o
  "printf", referenced from:
      main in ccUKdD8O.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

私はここで何が間違っているのですか?ありがとう。

4

1 に答える 1

5

Mac OS X では、シンボルの先頭にアンダースコアが追加されます。プログラムで、、、およびの前に aを追加_して、もう一度試してください。mainexitprintf

于 2013-02-13T06:44:34.337 に答える