ubuntuでopenmpiを使い並列計算用のコード(hogehoge.cpp)を、静的ライブラリオプション-staticをつけてコンパイルしたいと思っています。
staticオプションなしではコンパイルは通ります.
しかし,以下のように-staticをつけ、
mpicxx \ -static -Ofast -fopenmp -std=c++11 -fpermissive \ -I../../include -I../../tools/external/voro++/src -I/usr/include/mpi -I/usr/include \ hogehoge.cpp -o hogehoge \ -L../../lib -L/usr/lib -L/usr/lib/opnmpi/lib \ -lfftw3 -lgomp -lm
コンパイルすると、
/usr/bin/ld: -lmpi_cxx が見つかりません /usr/bin/ld: -lmpi が見つかりません
と出力されます。
以下のリンク先の英語のサイト
”ld - "cannot find -lmpi*" when compiling openmpi code - Ask Ubuntu”
でもよく似た質問があり、このときはstaticを外せば解決としていますが、私の場合はstaticを外せられません。
また、リンク先でもあるように、lmpiのLD_LIBRALY_PATHを設定しても、うまくいきません。
libmpi.so、libmpi_cxx.so以外の他のライブラリ(-lfftw3, -lm等)にはエラーは出ず、lmpiとlmpi_cxxでエラーが出ます。
staticをつけて、最初に書いたmpicxxでコンパイルが通るようにする方法、またはリンク先の英語サイトの人がstaticでコンパイルできるやりかたを教えていただけないでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。