【问题标题】:libnl on macOS and iOSmacOS 和 iOS 上的 libnl
【发布时间】:2016-10-19 16:42:08
【问题描述】:

我正在尝试将 Linux/Android C 应用程序迁移到 macOS/iOS。

我有这个问题,这个应用程序有时会使用 libnl 库,在源代码中你可以看到包括:

#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <linux/if_tun.h>

这些文件来自 libnl 库,您可以在此处找到有关此库的信息:

https://www.infradead.org/~tgr/libnl/doc/core.html#_introduction

我不知道它在 macOS 和 iOS 中是什么等价物。也许是一样的,但在另一条路上?

我也尝试下载 libnl 库并将其添加到 /usr/local/include 但它有其他依赖项,这就是为什么我认为我的方式错误......

我找到了这个指南https://developer.apple.com/library/content/documentation/Darwin/Conceptual/NKEConceptual/intro/intro.html#//apple_ref/doc/uid/TP40001858-CH225-SW1

但这意味着我需要重写所有使用 libnl 的代码部分?

有什么想法吗?

提前致谢!

【问题讨论】:

    标签: ios macos macos-sierra netlink


    【解决方案1】:

    您可能需要对代码进行一些更改。快速浏览一下 libnl 文档表明您可能能够使用 GDAsyncSocket。

    https://github.com/robbiehanson/CocoaAsyncSocket

    但如果没有看到您的代码,则无法确定。

    【讨论】:

    • 感谢您的回答。您需要代码的哪一部分?因为.. 是一个包含大量文件的大型应用程序,并且大多数文件都使用了这个库。例如,这是我们使用库的片段:
    • ´if (new_ifaces == TRUE){ set_rlocs(ctrl); request_route_table(RT_TABLE_MAIN,AF_INET); request_route_table(RT_TABLE_MAIN,AF_INET6); }´
    • 顺便说一句,我想说那是在 GDAsycSocket 之外。看起来它来自相关库(lib-route)。你可能面临着一份移植工作。
    • 那么,你认为正确的做法是将应用移植到macOS,然后移植到iPhone?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 2021-11-14
    • 2013-07-06
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多