安装 Nachos 3.4 Error cast from void* to int loses precision

Installing Nachos 3.4 Error cast from void* to int loses precision

我正在尝试安装 Nachos 3.4,我使用的是 Linux 64 位,但遇到问题,错误是 casting from void* to int loses precision [-fpermissive]。我已经搜索了很多次并尝试了很多方法,例如:使用 intptr_tlong,static_cast<int> 等等。但它们没有用,我不能使用 C 或 C++ 库,如 stdint.hcstdint.hiostream、... 我也打算使用交叉编译器,但我不知道。请帮助我,非常感谢。

Nachos 只有 32 位。您实际上是在尝试将其编译为 64 位,但它不会工作;它被编写为仅在 ILP32 data model. It also requires GCC 3.4 上工作,因为它期望文字字符串常量是可变的,而后来的 GCC 版本根本不支持该选项 -fwritable-strings:代码可以在没有标志的情况下编译,但是二进制文件出现段错误。

本质上,玉米片已经过时了。

最好的办法是在虚拟机(例如 virtualbox)中安装 Debian 3.1r8,然后在那里编译和 运行 Nachos。