0

尝试安装 Mininet 时出现以下错误:

Installing Mininet core
~/mininet ~
cc -DVERSION=\"PYTHONPATH=. bin/mn --version\" mnexec.c -o mnexec
mnexec.c: In function ‘setns’:
mnexec.c:49: error: ‘__NR_setns’ undeclared (first use in this function)

我在网上搜索,发现可以通过为我的 32 位或 64 位内核适当地定义丢失的系统调用号来解决问题。

如何为 32 位内核定义缺少的系统调用号?

4

1 回答 1

0

我不知道是什么Mininet,但我相信你的问题可能是由于缺少必要的头文件。错误:

mnexec.c: In function ‘setns’: `mnexec.c:49: error: ‘__NR_setns’ undeclared (first use in this function)

表示__NR_setns未在您尝试编译的内容中声明。一点点挖掘显示了在 Linux 中引用它的可能标头。请参阅Linux 交叉参考。一个简短的可能性列表是:

/usr/include/asm/unistd_32.h
/usr/include/asm/unistd_64.h
/usr/include/bits/syscall.h
/usr/include/valgrind/vki/vki-scnums-x86-linux.h
/usr/include/valgrind/vki/vki-scnums-amd64-linux.h

还有其他的,但那些看起来最相关。

于 2014-07-04T05:45:47.650 回答