首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图在Ubuntu上与gcc一起构建胖通用二进制时出错

试图在Ubuntu上与gcc一起构建胖通用二进制时出错
EN

Stack Overflow用户
提问于 2016-05-17 16:36:25
回答 1查看 846关注 0票数 0

我试图运行一个非常简单的代码,但它报告错误,谁能给一些建议吗?我正在使用Ubuntu14和gcc4.9。

代码语言:javascript
复制
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’
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 17:13:15

看起来,您正在尝试使用Apple /X(达尔文) GCC/CLang方法将代码编译成具有2种体系结构的通用二进制文件。

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

32位:

代码语言:javascript
复制
gcc -m32 channel.cpp 

64位

代码语言:javascript
复制
gcc -m64 channel.cpp

特殊考虑

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

代码语言:javascript
复制
sudo apt-get install gcc-multilib g++-multilib

在其他非基于Ubuntu的系统上,您需要使用:

代码语言:javascript
复制
apt-get install gcc-multilib g++-multilib
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37281891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档