无法在我的Mac上编译程序集!

时间:2011-03-20 05:12:08

标签: c gcc assembly

$ gcc -m32 hw3.c -o hw3
Undefined symbols:
  "i", referenced from:
      _main in ccuNMbgT.o
      _main in ccuNMbgT.o
     (maybe you meant: _i, _main , cstring=hey, supposed to supply an integer argument , cstring=after multiply, value is %d
 , _i$non_lazy_ptr , _printf , _environ , _atoi , _exit )
ld: symbol(s) not found
collect2: ld returned 1 exit status

我正在与一些C进行汇编。我正在尝试编译一个使用gcc编译的Ubuntu的示例,但它不能在我的Mac终端上运行。

1 个答案:

答案 0 :(得分:1)

它告诉了你这个问题并给了你解决方案(“也许你的意思是......”)。 C符号是否在汇编程序中为它们添加下划线是高度依赖于平台的事情之一;在OS X上他们这样做,所以当在C中引用名为“i”的变量时,你必须在汇编程序中将其称为“_i”。