2011-08-07 25 views
3

opencv 2.2にリンクする実行可能ファイルがあります。しかし、私はopencv 2.2を削除しました。私はopencv 2.3をインストールしました。共有ライブラリの壊れたリンクを修正しましたg ++

問題は、この実行可能ファイルを新しい共有ライブラリにリンクする方法はありますか?ソースコード全体を再コンパイルしないでください。これらの壊れたリンクを修正するにはどうすればよいですか

running ldd: 

    linux-vdso.so.1 => (0x00007fff17fff000) 
    libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007fd6f0e0d000) 
    libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007fd6f0bf2000) 
    libXmu.so.6 => /usr/lib/libXmu.so.6 (0x00007fd6f09d8000) 
    libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fd6f07c8000) 
    libGLU.so.1 => /usr/lib/libGLU.so.1 (0x00007fd6f0559000) 
    libGL.so.1 => /usr/lib/fglrx/libGL.so.1 (0x00007fd6f0353000) 
    libopencv_core.so.2.2 => not found 
    libopencv_imgproc.so.2.2 => not found 
    libopencv_highgui.so.2.2 => not found 
    libopencv_ml.so.2.2 => not found 
    libopencv_video.so.2.2 => not found 
    libopencv_features2d.so.2.2 => not found 
    libopencv_calib3d.so.2.2 => not found 
    libopencv_objdetect.so.2.2 => not found 
    libopencv_contrib.so.2.2 => not found 
    libopencv_legacy.so.2.2 => not found 
    libopencv_flann.so.2.2 => not found 
    libglut.so.3 => /usr/lib/libglut.so.3 (0x00007fd6f0109000) 

...

おかげでみんな、

サミュエル

+0

'2.3'は' 2.2'とバイナリ互換ですか? ABIが変わらなければ、シンボリックリンクでこの問題を回避できると思います。 –

+0

私はそのためのシンボリックリンクを作成しようとしましたが、うまくいきませんでした。 –

+0

'ldd'はまだ' not found'と言っていますか?あなたのプログラムはクラッシュするか、読み込みに失敗しますか? –

答えて

4

ABIが重大な変更を受けなかった場合はOpenCVのバージョン2.3は、すなわち、バージョン2.2、とバイナリ互換性ある場合は、 symbolic linksの問題を回避できます。

# ln -s /usr/lib/libopencv_core.so.2.3 /usr/lib/libopencv_core.so.2.2 
# ln -s /usr/lib/libopencv_imgproc.so.2.3 /usr/lib/libopencv_imgproc.so.2.2 
. 
. 
. 
関連する問題