我有一个使用libnl的应用程序。它可以使用任一版本(1或3),并且在配置期间,如果未找到libnl3,它首先尝试使用ibnl3并回退到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中它修复了这个问题 有另一种解决方案吗?
答案 0 :(得分:0)
如果我安装libnl3-dev它修复了问题还有另一个解决方案吗?
还有其他解决方案,但最重要的是,您只能拥有libnl.so.1
或 libnl-3.so.200
,但不能同时拥有这两种解决方案。
通过"全力投入libnl-3
"是最简单的解决方案。
另一种方法是在libnl-1
"上全力以赴,这意味着从源代码中重建需要libnl-3
的任何内容(针对libnl-1
)。这假设您的其他依赖项可以根据libnl-1
构建(这绝不是保证)。