【问题标题】:Error trying to build a fat universal binary with gcc on Ubuntu尝试在 Ubuntu 上使用 gcc 构建胖通用二进制文件时出错
【发布时间】:2016-05-17 16:36:25
【问题描述】:

我尝试运行一个非常简单的代码,但它报告错误,任何人都可以提供一些建议吗?我正在使用 Ubuntu14 和 gcc4.9。

xin@ubuntu:~/pipes$ gcc -arch i386 -arch x86_64 channel.cpp
gcc: error: i386: No such file or directory
gcc: error: x86_64: No such file or directory
gcc: error: unrecognized command line option ‘-arch’
gcc: error: unrecognized command line option ‘-arch’

【问题讨论】:

    标签: ubuntu gcc architecture x86-64 i386


    【解决方案1】:

    看起来您正在尝试使用 Apple OS/X (Darwin) GCC/CLang 方法将代码编译为具有 2 个架构的通用二进制文件。

    在 Linux(包括 Ubuntu)上是不同的。 Linux 没有对单个可执行文件中的多个目标的通用二进制支持。它是每个构建一个架构。如果您的目标是 32 位二进制文​​件,则删除 -arch i386 -arch x86_64 并将其替换为 -m32,如果目标是 64 位二进制文​​件,则将其替换为 -m64

    32 位:

    gcc -m32 channel.cpp 
    

    64 位

    gcc -m64 channel.cpp
    

    特别注意事项

    您可能还需要安装 Multilib 版本的 GCC(如果您愿意,还可以安装 G++),这样您才能正确构建和使用适当的 C 库在 64 位 Ubuntu 上运行 32 位应用程序。这可以用这个命令行来完成:

    sudo apt-get install gcc-multilib g++-multilib
    

    在您需要使用的其他非 Ubuntu Debian 系统上:

    apt-get install gcc-multilib g++-multilib
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多