netlink, link 到 libnl-3 和 libnl-1
netlink, link to libnl-3 and libnl-1
我有一个使用 libnl 的应用程序。它可以使用任一版本(1 或 3),并且在配置期间它首先尝试使用 ibnl3,如果未找到 libnl3,则回退到 libnl-1。
我的应用程序使用了另一个也使用 libnl 的库。
问题是我的机器上只有 libnl1-dev 所以我的应用程序必须使用它。
但是我使用的库使用 libnl3(我猜它是用 yum 安装的,它是静态链接的)
所以我有两个版本,但我的应用程序崩溃了!!
这里有一些印刷品
ldd myapp.so|grep libnl
libnl.so.1 => /lib64/libnl.so.1 (0x00007fda33eb5000)
libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007fda32a3d000)
libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007fda3281b000)
yum list|grep libnl
libnl.x86_64 1.1.4-3.el7
libnl-devel.x86_64 1.1.4-3.el7
libnl3.x86_64 3.2.28-2.el7
libnl3-cli.x86_64 3.2.28-2.el7
libnl.i686 1.1.4-3.el7
libnl-devel.i686 1.1.4-3.el7
libnl3.i686 3.2.28-2.el7
libnl3-cli.i686 3.2.28-2.el7
如果安装 libnl3-dev 可以解决问题
还有其他解决方案吗?
if I install libnl3-dev it fixes the issue is there another solution?
还有其他解决方案,但底线是您只能有 libnl.so.1
或 libnl-3.so.200
,但不能同时有。
通过 "going all in on libnl-3
" 解决此问题是最简单的解决方案。
替代方案是 "go all on on libnl-1
",这意味着从源代码重建任何需要 libnl-3
的内容(相对于 libnl-1
)。这是假设您的其他依赖项 可以 完全针对 libnl-1
构建(这绝不是保证)。
我有一个使用 libnl 的应用程序。它可以使用任一版本(1 或 3),并且在配置期间它首先尝试使用 ibnl3,如果未找到 libnl3,则回退到 libnl-1。
我的应用程序使用了另一个也使用 libnl 的库。 问题是我的机器上只有 libnl1-dev 所以我的应用程序必须使用它。 但是我使用的库使用 libnl3(我猜它是用 yum 安装的,它是静态链接的) 所以我有两个版本,但我的应用程序崩溃了!!
这里有一些印刷品
ldd myapp.so|grep libnl
libnl.so.1 => /lib64/libnl.so.1 (0x00007fda33eb5000)
libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007fda32a3d000)
libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007fda3281b000)
yum list|grep libnl
libnl.x86_64 1.1.4-3.el7
libnl-devel.x86_64 1.1.4-3.el7
libnl3.x86_64 3.2.28-2.el7
libnl3-cli.x86_64 3.2.28-2.el7
libnl.i686 1.1.4-3.el7
libnl-devel.i686 1.1.4-3.el7
libnl3.i686 3.2.28-2.el7
libnl3-cli.i686 3.2.28-2.el7
如果安装 libnl3-dev 可以解决问题 还有其他解决方案吗?
if I install libnl3-dev it fixes the issue is there another solution?
还有其他解决方案,但底线是您只能有 libnl.so.1
或 libnl-3.so.200
,但不能同时有。
通过 "going all in on libnl-3
" 解决此问题是最简单的解决方案。
替代方案是 "go all on on libnl-1
",这意味着从源代码重建任何需要 libnl-3
的内容(相对于 libnl-1
)。这是假设您的其他依赖项 可以 完全针对 libnl-1
构建(这绝不是保证)。