安装 multi2sim 模拟器时出现问题

安装 multi2sim 模拟器时出现问题

我是 ubuntu 新手,当我尝试安装 multi2sim 时出现此错误:

CXX 工作项Isa.o
WorkItemIsa.cc:在成员函数“void SI::WorkItem::ISA_V_CVT_I32_F32_Impl(SI::Instruction*)”中:
WorkItemIsa.cc:2335:23:错误:‘isnan’未在此范围内声明
  否则,如果(isnan(fvalue)|| fvalue == 0.0f || fvalue == -0.0f)
                       ^
WorkItemIsa.cc:2335:23:注意:建议的替代方案:
在 WorkItemIsa.cc:22:0 包含的文件中:
/usr/include/c++/5/cmath:641:5: 注意:'std::isnan'
     不是(_Tp __x)
     ^
Makefile:456:目标“WorkItemIsa.o”的配方失败
make[4]: *** [WorkItemIsa.o] 错误 1
make[4]: 离开目录‘/home/yasmine/Downloads/multi2sim-5.0/src/arch/southern-islands/emulator’
Makefile:360:目标“全递归”的配方失败
make[3]: *** [全递归] 错误 1
make[3]: 离开目录‘/home/yasmine/Downloads/multi2sim-5.0/src/arch/southern-islands’
Makefile:363:目标“全递归”的配方失败
make[2]: *** [全递归] 错误 1
make[2]: 离开目录‘/home/yasmine/Downloads/multi2sim-5.0/src/arch’
Makefile:568:目标“全递归”的配方失败
make[1]: *** [全递归] 错误 1
make[1]: 离开目录 '/home/yasmine/Downloads/multi2sim-5.0/src'
Makefile:570:目标“全递归”的配方失败
make:*** [全递归] 错误 1

我不知道我该怎么办或如何解决它!!熟悉这个模拟器的人可以帮助我吗?

答案1

只需找到这一行:

else if (isnan(fvalue) || fvalue == 0.0f || fvalue == -0.0f)

位于/multi2sim5.0/scr/arch/southern-islands/emulator/WorkItemIsa.cc文件内部。

std::在 之前添加isnan。它应该是这样的:

else if (std::isnan(fvalue) || fvalue == 0.0f || fvalue == -0.0f)

答案2

在 Ubuntu 16.04 上安装 Multi2Sim 不应该通过make该项目 Github 页面的主要 README 来完成(https://github.com/Multi2Sim/multi2sim#readme) 表示执行以下操作:

  1. 安装 Docker(https://docs.docker.com/engine/installation/

  2. 在 Docker 终端内,运行以下命令来编译并安装 Multi2Sim:

    docker pull multi2sim/multi2sim
    docker run -it multi2sim/multi2sim bash
    
  3. 要运行 Multi2Sim,请打开 Docker 终端并运行:

    m2s
    

相关内容