【问题标题】:HowTo Compile a 32-bit Application Using gcc On the 64-bit MacBook Terminal如何在 64 位 MacBook 终端上使用 gcc 编译 32 位应用程序
【发布时间】:2015-11-11 23:44:40
【问题描述】:

所以我试图运行一个 .s 文件,每次我使用命令行时: gcc -m32 -o Compute32 Compute.s 我收到了这个错误:

架构 i386 的未定义符号: “_main”,引用自: 主可执行文件的隐式入口/启动 “printf”,引用自: Compute-f6f555.o 中的 main “scanf”,引用自: Compute-f6f555.o 中的 main ld:未找到体系结构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用

谁能给我建议下一步?

【问题讨论】:

  • 请告诉我们您的Compute.s
  • 看起来您的环境在符号上使用了前导下划线,因此当您可能有 main 时,它正在寻找 _main。此外,您引用 printfscanf 时也没有下划线。

标签: macos assembly i386


【解决方案1】:

我只能猜测,因为您没有向我展示您的 Compute.s,但我猜您的问题是在 OS X 上,所有 C 函数在汇编中都带有下划线前缀。因此,如果您将main 更改为_main 并同样将printf 更改为_printf 等,您的问题应该得到解决。

【讨论】:

    猜你喜欢
    • 2013-12-02
    • 2014-07-01
    • 1970-01-01
    • 2016-05-17
    • 2011-03-30
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多