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

标签 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 终端上运行。

最佳答案

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

关于无法在我的 Mac 上编译程序集!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366887/

相关文章:

gcc - 如何使用 gcc 隐藏信息或使可执行函数不可搜索

c - gcc:C 中未声明的变量,但已声明

assembly - 68k 汇编 - 地址寄存器上的加号

makefile - 使用 make,如何在程序集项目中使用 .c 文件防止这种行为?

c++ - 运行 OFX 插件

c++ - Go 可以在页面级别使用内存吗?

c - C是命令式还是声明式编程语言

c - 将代码拆分为文件和 O 标志

c++ - 如果仅写入值,我是否需要原子?

c - 使用 pthreads 计算多个网页中 anchor 标记的数量