2004年7月14日(水)

標準ライブラリのパス

IBM の某コンパイラのインストール先を変更して、苦労して .cfg ファイルを作り直してパスの指定を全部書き直してやったと思いきや,確かに何事もなくコンパイルできるようにはなっているのに、実行時にコケる。…それも旧パスにライブラリがあるはず,と読みにいくという間抜けなやり方で。

neutron-xxxxxx{yagi(p4)}1063: ./percolation3                                zsh
dyld: ./percolation3 can't open library: /opt/ibmcmp/lib/libibmc++.dylib  (No such file or directory, errno = 2)
zsh: trace trap  ./percolation3
neutron-xxxxxx{yagi(p4)}1064: otool -L percolation3                         zsh
percolation3:
        /usr/local/lib/libgsl.0.dylib (compatibility version 6.0.0, current version 6.0.0)
        /usr/local/lib/libgslcblas.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /opt/ibmcmp/lib/libibmc++.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 63.0.0)

で、どうにかやりようがないものかと散々探したが徒労に終わり、かわりに実行時に DYLD_LIBRARY_PATH つけとけばコケなくなることは明らかになったのでこれで諦めることにする。つーか時間もったいないし。

こればかりはどうしようもないのかのぅ…。標準の位置にインストールしなかったら各自環境変数で、ってどうも偉そうで


Help

[referer: [an error occurred while processing this directive]]

あわせて読みたい