libopencv_highgui.so
とlibopencv_highgui.so.2.4
はおそらくへのシンボリックリンクですlibopencv_highgui.so.2.4.0
。
ライブラリは頻繁にこれを行うため、特定のバージョンに対してリンクする必要のあるソフトウェアは、汎用ライブラリも公開したままにすることができます。
これは主に、プログラムがライブラリのメジャーバージョンまたはマイナーバージョンに対してリンクされる場合に役立ちます。レガシーアプリケーションがバージョン1.2に対してリンクする必要があるかどうかを検討してくださいlibopencv_highgui
。libopencv_highgui.so
正しいバージョンであることが保証されていないため、プログラムはリンクできませんでした。ただし、プログラムはに対してリンクする可能性がありlibopencv_highgui.so.1.2
ます。libopencv_highgui.so.1.2はlibopencv_highgui.so.1.2.3へのシンボリックリンクである可能性がありますが、3番目の数字は通常、互換性を損なうことのないマイナーなバグ修正を意味するため、問題ありません。
したがって、これにより、リンクする必要のあるファイルが表示されます。これは本当に異なります。特定のマイナーリビジョンのバグや癖に頼る必要がない限り、2.4.0のものとのリンクは絶対に避けたいと思います。これにより、プログラムは特にバージョン2.4.0に関連付けられます。2.4.1がリリースされたとき(またはディストリビューションのパッケージマネージャーを細流化したとき)、おそらくプログラムを壊すことはありません。
リンクしlibopencv_highgui.so
てから2.5がメインライブラリとしてインストールされている場合(そしてlibopencv_highgui.soがlibopencv_highgui.so.2.5.0にリンクしている場合)、2番目の数字は互換性の変更を意味することがあるため、プログラムが正しくリンクされない可能性があります。
つまり、個人的なプロジェクトの場合は、必要なものにリンクするだけです。libopencv_highgui.soは、個人的なものであればおそらく安全です。配布する場合は、コードが適切にリンクするライブラリのバージョンを把握してから、可能な限りあいまいなバージョンを使用してください。たとえば、コードが2.2、2.3、2.4で機能する場合は、先に進んでにリンクする必要がありますlibopencv_highgui.so
。特に2.4.0でのみ機能する場合は、とリンクする必要がありますlibopencv_highgui.so.2.4.0
。2.4のサブリビジョンで動作する場合は、libopencv_highgui.so.2.4を使用する必要があります。
基本的に、ほとんどの人の設定で適切にリンクすると思われるものを選択する必要があります。