用 64 位 g++ Fedora 编译 32 位

Posted

技术标签:

【中文标题】用 64 位 g++ Fedora 编译 32 位【英文标题】:Compiling 32bit with 64bit g++ Fedora 【发布时间】:2017-03-11 21:05:23 【问题描述】:

当我尝试编译我的代码时:

g++ -m32 code.cpp

我收到一个错误:

/usr/bin/ld: 搜索 -lstdc++ 时跳过不兼容的 /usr/lib/gcc/x86_64-redhat-linux/6.2.1/libstdc++.so /usr/bin/ld: 找不到 -lstdc++ collect2:错误:ld 返回 1 个退出状态

我已经安装了:

gcc-6.2.1-2.fc24.x86_64

gcc-c++-6.2.1-2.fc24.x86_64

glibc-devel-2.23.1-10.fc24.i686

libstdc++-devel-6.2.1-2.fc24.x86_64

如何解决?

【问题讨论】:

【参考方案1】:

我的解决方案是:

sudo dnf install libstdc++-static libstdc++-static.i686

但你可能还需要

sudo dnf install libstdc++-devel libstdc++-devel.i686

【讨论】:

以上是关于用 64 位 g++ Fedora 编译 32 位的主要内容,如果未能解决你的问题,请参考以下文章

交叉编译:检查是不是可以在 64 位机器上构建 32 位

将 32 位和 64 位 .so 文件与 g++ 链接以用于 c++ 程序

openssl windows编译 32位&64位

在 Ubuntu 中在 32 位上交叉编译 64 位程序时缺少包含“bits/c++config.h”

64位linux编译32位程序

解决64位Linux系统编译32位错误