2016-12-18 7 views
1

私はlibnlを使用するアプリケーションを持っています。どちらのバージョン(1または3)でも構いません。構成時には、まずlibnl3が見つからない場合にibnl3を使用し、libnl-1にフォールバックします。netlink、libnl-3とlibnl-1へのリンク

私のアプリは、libnlも使用する別のライブラリを使用しています。 問題は私のマシン上にlibnl1-devしか持っていないので、私のアプリはそれを使わなければならないということです。 しかし私が使っているライブラリはlibnl3を使っています(yumと一緒にインストールされていましたが、静的にリンクされていると思います) 私はバージョンとアプリケーションがクラッシュしています!!中には、別の解決策があると、それは問題を修正 libnl3が-devをインストールした場合

ここにいくつかのプリント

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    

は?

答えて

0

libnl3-devをインストールした場合、別の解決策がありますか?

あり、他のソリューションがありますが、一番下の行は、あなただけlibnl.so.1またはlibnl-3.so.200ではなく、両方を持つことができるということです。

これを「libnl-3に行く」と固定するのが最も簡単な解決策です。

libnl-1」の代わりに、libnl-3がソースから(libnl-1に対して)必要なものをすべて再構築することです。これはあなたの他の依存関係がlibnl-1に対して全く構築されていないことを保証するものではないことを前提としています。

関連する問題