0

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

4

1 回答 1

0

Nachos 只有 32 位。您实际上是在尝试将其编译为 64 位,但它不起作用;它被编写为仅适用于ILP32 数据模型。它还需要GCC 3.4,因为它期望文字字符串常量是可变的,并且更高版本的 GCC 版本根本不支持该选项,-fwritable-strings, :代码可以在没有标志的情况下编译,但二进制文件段错误。

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

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

于 2020-10-17T12:07:57.537 回答