我正在尝试安装 Nachos 3.4,我使用的是 Linux 64 位,但我遇到了问题,错误是casting from void* to int loses precision [-fpermissive]
. 我已经搜索了很多次并尝试了很多方法,例如:使用intptr_t
,long
等等,static_cast<int>
。但是它们没有用,我不能使用 C 或 C++ 库,如stdint.h
, cstdint.h
, iostream
, ... 我也打算使用交叉编译器,但我不知道。请帮助我,非常感谢。
问问题
105 次
1 回答
0
Nachos 只有 32 位。您实际上是在尝试将其编译为 64 位,但它不起作用;它被编写为仅适用于ILP32 数据模型。它还需要GCC 3.4,因为它期望文字字符串常量是可变的,并且更高版本的 GCC 版本根本不支持该选项,-fwritable-strings
, :代码可以在没有标志的情况下编译,但二进制文件段错误。
从本质上讲,玉米片已经过时了。
最好的办法是在虚拟机(例如 virtualbox)中安装Debian 3.1r8 ,并在那里编译和运行 Nachos。
于 2020-10-17T12:07:57.537 回答