ライブラリAGMGをコンパイルしようとしています。mpi(AGMG)を使用するライブラリをコンパイルします
並列例えばメイクファイルはこのように見ている:私のDebian mpif.hで
# MPIopt = -I/... (where to find mpif.h)
# MUMPSPopt = -I/... (where to find files to be included by
# applications using MUMPS)
# MUMPSlib = -l... (link reference for MUMPS)
# SCALAP = -l... (link reference for SCALAPACK, needed by MUMPS)
# BLASLAPACK= -l... (link reference for LAPACK & BLAS)
# MPIlib = -l... (link reference for MPI)
が発見された:
$ ls /usr/lib/openmpi/include/mpi.h
/usr/lib/openmpi/include/mpi.h
は、だから私はMakefileの中で書いている:
MPIopt = -I/usr/lib/openmpi/include/
MPIlib = -lmpi
しかし、決して少ない私がコンパイルしようとすると、私は次のエラーを取得:
:~/AGMG_3.0/Example_par$ make
cd ../SRC;make dpar
make[1]: Entering directory `AGMG_3.0/SRC'
make[1]: Nothing to be done for `dpar'.
make[1]: Leaving directory `AGMG_3.0/SRC'
gfortran-4.4 -O4 -o Example_par Example_par.o ../SRC/dagmg_par.o -lmpi
Example_par.o: In function `MAIN__':
Example_par.f90:(.text+0x77): undefined reference to `mpi_init_'
....
....
....
dagmg_par.f90:(.text+0x19fc9): undefined reference to `mpi_comm_rank_'
dagmg_par.f90:(.text+0x19fdd): undefined reference to `mpi_comm_size_'
collect2: ld returned 1 exit status
make: *** [Example_par] Error 1
私はこれで成功したと思っていましたが、scaplap とその他の要件に問題がありました。 scalapが発見されていますので、どのように私は一緒にこのすべてを置けばいい
$ dpkg -L libscalapack-mpi-dev
/.
/usr
/usr/lib
/usr/lib/libscalapack-openmpi.a
おたふく風邪は/usr/lib/libsmumps.aで発見され、ヘッダファイルは/usr/include/smumps_c.h
であります?
私はあなたの助けを事前に
おかげで...もっと高度なFORTRANやC開発者のために、これは些細なことだろうと知っています。
EDIT: 私はそれが他の人を助けるかもしれない期待して、ここでは完全なMakefileの定義を入れている:これはそれを構築する
MPIopt = -I/usr/lib/openmpi/include -I/usr/lib/openmpi/lib -L/usr/lib/openmpi/lib -pthread
MPIlib = -lmpi_f90 -lmpi_f77 -lmpi
MUMPSPopt = -I/usr/lib/libsmumps.a -I/usr/lib/libdmumps.a
MUMPSlib = -lsmumps -ldmumps
BLASLAPACK=-L/usr/lib -llapack -lblas
BLASLAPACK=-L/usr/lib -llapack -lblas
SCALAP = -L/usr/lib/libscalapack-openmpi.a -lscalapack-openmpi
F90=gfortran-4.6
。返信ありがとう!
ありがとう!これは私にそれをする方法を示しました! -L/Path/to/Library.a -llibName! – Oz123