使用路由套接字需要安装哪些软件包?

时间:2009-10-05 15:03:29

标签: c linux networking routing

我正在尝试Richard Stevens在Unix网络编程中给出的代码。但我无法获得编译代码。

这是源代码。 http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-f00/unpv12e/libroute/

我没有头文件net / if_dl.h,net / route.h头文件不包含代码使用的常量和结构。

5 个答案:

答案 0 :(得分:6)

请注意,您不需要在该文件夹中创建“libroute”

见文件:

cd ../libroute # only if your system supports 4.4BSD style routing sockets
make           # only if your system supports 4.4BSD style routing sockets

cd ../libxti   # only if your system supports XTI
make           # only if your system supports XTI

Linux不是BSD样式路由,只需转到../intro并构建示例〜!

答案 1 :(得分:4)

这是一个特定于BSD的API,linux不支持它。该 等效功能(不兼容源代码)由。提供 netlink socket系列。 “man 7 netlink”应该让你开始,但是 你可能需要做一些移植工作。

答案 2 :(得分:3)

我现在不在我能做到的机器上,但也许我仍然可以提供帮助。如果您的发布使用yum(例如RHEL):

yum provides if_dl.h

或者如果你使用apt(例如Ubuntu / Debian):

sudo apt-get install apt-file
sudo apt-file update
apt-file search if_dl.h

如果已安装apt-file,则不需要第一步,我不记得第二步是否正确。此外,我相信两个包管理器都使用文件名和完整路径。

希望这对你或其他读这篇文章的人有用,你会得到答案!

答案 3 :(得分:0)

尝试从net复制if_dl.h,并将其放在/ usr / include / net中。 可能是它的工作,也许它需要其他的库。 也许我的英语不太好。原谅我。

答案 4 :(得分:0)

https://ubuntu.pkgs.org/16.04/ubuntu-universe-amd64/freebsd-glue_0.2.20_amd64.deb.html中所述 只需安装freebsd-glue deb软件包:

sudo apt-get install freebsd-glue