我是 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) 表示执行以下操作:
安装 Docker(https://docs.docker.com/engine/installation/)
在 Docker 终端内,运行以下命令来编译并安装 Multi2Sim:
docker pull multi2sim/multi2sim docker run -it multi2sim/multi2sim bash
要运行 Multi2Sim,请打开 Docker 终端并运行:
m2s