当我尝试安装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位内核定义缺少的系统调用号?
答案 0 :(得分:0)
我不知道Mininet
是什么,但我相信您的问题可能是由于缺少必要的头文件。错误:
mnexec.c: In function ‘setns’: `mnexec.c:49: error: ‘__NR_setns’ undeclared (first use in this function)
表示在您尝试编译的内容中未声明__NR_setns
。一点点挖掘显示了在Linux中引用它的可能标头。见Linux Cross Reference。一个简短的可能性列表是:
/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
还有其他人,但那些看起来最相关。