在 Windows 上使用 netinet/ether.h 编译 C 头文件
我正在尝试编译(使用 cygwin)一个包含 netinet/ether.h 的 C 头文件。在 Linux 上我可以编译头文件,但在 Windows 上找不到 netinet/ether.h。包含正确的 netinet/ether.h 的最佳方法是什么?
I'm trying to compile (using cygwin) a C header file that includes netinet/ether.h. On Linux I can compile the header file but on Windows it can't find netinet/ether.h. What's the best way to include the proper netinet/ether.h?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这取决于您到底需要从
netinet/ether.h
中获得什么,但一般答案是没有好的方法,您必须提供某种解决方法。特别是 Gnulib 文档< /a> for
ether.h
注释其中的所有函数,“此函数是某些平台上缺少:HP-UX 11、Cygwin、mingw、Interix 3.5、BeOS。”更一般地说,这些是与操作系统提供的技术相关的相当低级的网络标头,并且 Cygwin 完全有可能(事实上很可能)无法以某种方式提供对 Windows 网络系统的访问这将与 Linux 提供的相匹配。这就是为什么将软件从一个系统移植到另一个系统并不是一件完全微不足道的事情!
This depends on what exactly you need from
netinet/ether.h
, but the general answer is that there is no good way, and you'll have to provide some sort of workaround.In particular, the Gnulib documentation for
ether.h
notes for all of the functions in there, "This function is missing on some platforms: HP-UX 11, Cygwin, mingw, Interix 3.5, BeOS."More generally, these are fairly low-level networking headers that relate to technology provided by the operating system, and it's entirely possible (and, in fact, likely) that Cygwin may not be able to provide access to the Windows networking system in a way that would match what Linux provides. This is why porting software from one system to another is not a completely trivial exercise!