前提・実現したいこと
ターミナルで実行したところ以下のようなエラーが出てしまい実行できません。
「dyld: Library not loaded:」で検索し解決策を試してはいるもののうまくいきません。
恐らく、以前管理パッケージにfinkを使っていたのですが、macOS BigSurに対応してないらしくhomebrewに切り替えgcc(brewでのgccのversionはgcc10)をインストールし直したところこのような不具合が起きたのだと思っています。しかしながら、私はプログラミングの知識がほとんどないため何をしていいのか全くわからない状況です。エラーコードは以下の通りです。よろしくお願いいたします。
発生している問題・エラーメッセージ
dyld: Library not loaded: /opt/sw/lib/gcc9/lib/libgfortran.5.dylib Referenced from: /usr/local/lib/libmpi_usempif08.20.dylib Reason: image not found
補足情報(FW/ツールのバージョンなど)
macOS Big Sur version 11.1
finkでのgccのversionは確かgcc9
homebrewでのgccのversionはgcc10
> homebrewでのgccのversionはgcc10
なのに、足りなくてエラーになってる
> dyld: Library not loaded: /opt/sw/lib/gcc9/lib/libgfortran.5.dylib
はgcc9用ですね
おそらく、それを必要としている
> Referenced from: /usr/local/lib/libmpi_usempif08.20.dylib
がgcc9用のもので、それのgcc10用のをhomebrewで入れ直したら直るのではないですかね
回答ありがとうございます。
Referenced from: /usr/local/lib/libmpi_usempif08.20.dylibをgcc10用に入れ替えるということですよね?入れ替えるには具体的にどのようにすれば良いのでしょうか。無知で申し訳ございません。
libmpi_usempif08
でググったら、Open-MPIの一部のようなので、それの新しいのを入れたらいいんじゃないですかね
https://formulae.brew.sh/formula/open-mpi
homebrewからinstallしたところうまくいかず同じエラーコードが表示されてしまいます...
インストールしたら、
libmpi_usempif08.20.dylib
よりも新しいものが、gccから先に見つかるところに置かれましたか?
https://formulae.brew.sh/formula/open-mpi
には、
Depends on:
gcc 10.2.0
と書かれてるのだから、新たに入れたものはgcc9関連のライブラリを必要とはしないはずです
gccが、元々あった
/usr/local/lib/libmpi_usempif08.20.dylib
を先に見つけて、それを使おうとしてるのではないですか?
もしそうなら、それを直さないと、エラー消えませんよ
新たにインストールしたOpen-MPIのライブラリがどこに入ったのか確認して、元々あったlibmpi_usempif08.20.dylibよりも、新たにインストールした方をgccが優先するように設定する
新たにインストールしたOpen-MPIのライブラリがどこに入ったのか確認できたら、
https://qiita.com/kaityo256/items/ae9329dae24ea8828ae0
の「.zshrcか何かに以下の記述をすれば良い。」と書かれてるところの下の4行のように設定すれば、gccがそこを優先するので、先に見つけて使ってくれると思います
(MPIPATH=... を、実際のパスに合わせて変更する)