如何让"g++ -mx32"在 RHEL 7.2 上工作
How to get "g++ -mx32" to work on RHEL 7.2
我是x64_86的新手,但被迫使用它,因为RedHat在RHEL 7.x中放弃了对32位操作系统的支持。我必须编译大量代码,而且还没有准备好跳到x64(因为我不需要64位地址,也不想面对所有相关的移植问题)。所以我考虑过使用-m32和-mx32,并决定-mx32是最适合我的路线。然而,虽然-m32在我的构建机器上工作得很好,但当我使用-mx32时,我得到了这个错误:
In file included from /usr/include/features.h:399:0,
from /usr/include/string.h:25,
from zz.cpp:1:
/usr/include/gnu/stubs.h:13:28: fatal error: gnu/stubs-x32.h: No such file or directory
# include <gnu/stubs-x32.h>
^
compilation terminated.
我在网上搜索解决方案,一些链接表明我必须为g++和gcc安装一些神秘的"multilib"rpm,然而,我在任何地方都找不到这些。其他人建议我必须在x32模式下安装Linux并为x32构建libgcc,这听起来有些极端。有什么想法或线索吗?有人真的尝试过g++ -mx32吗?也许它甚至不支持RH平台…谢谢!
注:为了让"-m32"选项工作,我必须安装:
yum install glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 ncurses-devel.i686
这个失败了(yum找不到这些rpm) -据说这些是-mx32工作所必需的:
yum install gcc-multilib g++-multilib
:
Multilib确实是你的答案,但不知道为什么你的repo不支持它。我是通过apt-get:
安装的sudo apt-get install gcc-multilib
虽然它使用64位指令,但它使用32位ABI,因此令人恼火的是它不能在WSL (Windows Linux子系统)下运行,WSL只支持64位指令。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 链表c++插入,所有情况都已检查,但没有任何工作
- 如何让"g++ -mx32"在 RHEL 7.2 上工作