1

現在、Linux 環境で MATLAB コードを実行しようとしています。

  • Linux のバージョンは、Red Hat Enterprise Linux Server リリース 5.9 (Tikanga) です。
  • gcc のバージョンは 4.1.2 です。
  • MALTAB のバージョンは R2012b です。

問題を引き起こす MALTAB のステートメントは次のとおりです。

[status, result] = system('./vpdetection lines.tmp lines.out');

次のようなエラーが発生しました。

./vpdetection: /gpfs/apps/x86_64-rhel5/matlab/R2012a/sys/os/glnxa64/libstdc++.so.6: バージョン `GLIBCXX_3.4.14' が見つかりません

いくつかのソリューションをグーグルで検索しましたが、それらはすべてシステム ファイルの編集が必要です。sudoシステムファイルを編集する権限がないサーバーでコードを実行しているため。

システム ファイルを編集する必要のない他の回避策はありますか?


lddコマンドを試しました。結果は次のとおりです。

[sxh415@cyberstar vpdetection]$ ldd matlab/vpdetection
matlab/vpdetection: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by matlab/vpdetection)
matlab/vpdetection: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by matlab/vpdetection)
matlab/vpdetection: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by matlab/vpdetection)
    linux-vdso.so.1 =>  (0x00007ffff7ff8000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003845400000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003840400000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003844c00000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003840000000)
    /lib64/ld-linux-x86-64.so.2 (0x000000383fc00000)
4

2 に答える 2

0

MATLAB の内部とシステム シェルの外部の両方で実行可能ファイルを実行lddします。

シェル

$ ldd ./vpdetection

MATLAB

>> !ldd ./vpdetection

依存関係の競合を解決するにはLD_PRELOAD、MATLAB 自体または実行可能ファイルを起動するときに使用してみてください。

$ LD_PRELOAD=/path/to/libstdc++.so matlab

また

>> system('LD_PRELOAD=/path/to/libstdc++.so ./vpdetection lines.tmp lines.out')
于 2013-09-01T22:54:39.660 に答える