私はFortranプログラマーではありませんが(ほんの短い経験です)、部分的にで書かれたプログラムをコンパイルする必要がありますF77
。誰かがAbsoft
私の前にコンパイラでコンパイルしましたが、今度は。を使用して別のマシンで手順を繰り返す必要がありますg77
。Absoftの場合、makefileには
f77 -f -w -O -B100 -B108 -c *.f
mv *.f flib && mv *.o olib
f77 -B100 -o runme olib/*.o clib/*.o -L/usr/X11R6/lib64 -L/usr/X11R6/lib -lX11 -L$PVM_ROOT/lib/$PVM_ARCH -lfpvm3 -lpvm3 -L$ABSOFT/lib -lU77
これらの行を次のように変更しました
g77 -w -O -B100 -B108 -c *.f
mv *.f flib && mv *.o olib
g77 -B100 -o runme olib/*.o clib/*.o -L/usr/X11R6/lib64 -L/usr/X11R6/lib -lX11 -L$PVM_ROOT/lib/$PVM_ARCH -lfpvm3 -lpvm3 -lgfortran -lgfortranbegin
しかし、次のエラーメッセージが表示されます
somefile.f:(.text+0x93): undefined reference to `for_open'
somefile.f:(.text+0xf4): undefined reference to `for_write_seq_fmt'
somefile.f:(.text+0x128): undefined reference to `for_write_seq_fmt_xmit'
somefile.f:(.text+0x454): undefined reference to `for_read_seq'
どうすればこれを修正できますか?
UPDATE1
-libifcore
最後の行(リンカー)の最後に追加すると、次のようになります。
/usr/bin/ld: cannot find -libifcore
私は図書館を見つけました
$ find /opt/intel/* -name 'libifcore*'
/opt/intel/fce/9.1.036/lib/libifcore.a
/opt/intel/fce/9.1.036/lib/libifcore.so
/opt/intel/fce/9.1.036/lib/libifcore.so.5
/opt/intel/fce/9.1.036/lib/libifcore_pic.a
/opt/intel/fce/9.1.036/lib/libifcoremt.a
/opt/intel/fce/9.1.036/lib/libifcoremt.so
/opt/intel/fce/9.1.036/lib/libifcoremt.so.5
/opt/intel/fce/9.1.036/lib/libifcoremt_pic.a
しかし、ソースディレクトリで次のことを行っても
$ export PATH=$PATH:/opt/intel/fce/9.1.036/lib/
$ ln -s /opt/intel/fce/9.1.036/lib/libifcore.so
見つかりません。
さらに、別の問題が発生するのと同じマシンです-libmをMPICCに渡す方法は?libimf.so:警告:feupdateenvは実装されておらず、常に失敗します
コンパイラは必要に応じてライブラリを見つける必要があるようです
$ echo $LD_LIBRARY_PATH
/opt/intel/fce/9.1.036/lib:/opt/intel/cce/9.1.042/lib:/usr/local/lib/openmpi:/usr/local/lib:/usr/lib: