by yiqun » Thu Sep 28, 2006 8:41 pm
Julian, thanks for your help!
our linux is a 64-bit Redhat linux. when I use g77 as the compiler, it is a 64 bit system (GNU fortran 77 compiler g77 (or f77) has 8-byte default integer, native in this 64-bit Redhat linux). I foung there are liblapack.a and libblas.a in /usr/lib64, so I link them to my obj files (this should be right, because our system manager told me to do this, although he is not famaliar with lapack). My newest makefile is the following:
#
# MAKEFILE FOR prog.testeof.F
#
FF = g77
FLAG = -c
testeof.exe: deofcovcor.o deofpcs.o deoftotvar.o deof.o testeof.o
$(FF) deofcovcor.o deofpcs.o deoftotvar.o deof.o testeof.o \
/usr/lib64/libblas.a /usr/lib64/liblapack.a
@ echo "It is done!"
deofcovcor.o: deofcovcor.F
$(FF) $(FLAG) deofcovcor.F
deofpcs.o: deofpcs.F
$(FF) $(FLAG) deofpcs.F
deoftotvar.o: deoftotvar.F
$(FF) $(FLAG) deoftotvar.F
dof.o: deof.F
$(FF) $(FLAG) deof.F
testeof.o: testeof.F
$(FF) $(FLAG) testeof.F
g77 deofcovcor.o deofpcs.o deoftotvar.o deof.o testeof.o \
/usr/lib64/libblas.a /usr/lib64/liblapack.a
/usr/lib64/liblapack.a(dspevx.o)(.text+0x52e): In function `dspevx_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dspevx.o)(.text+0x91b): In function `dspevx_':
: undefined reference to `dcopy_'
/usr/lib64/liblapack.a(dspevx.o)(.text+0x96f): In function `dspevx_':
: undefined reference to `dcopy_'
/usr/lib64/liblapack.a(dspevx.o)(.text+0xa4a): In function `dspevx_':
: undefined reference to `dswap_'
/usr/lib64/liblapack.a(dspevx.o)(.text+0xaef): In function `dspevx_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dspevx.o)(.text+0xcd5): In function `dspevx_':
: undefined reference to `dcopy_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x187): In function `dsptrd_':
: undefined reference to `dspmv_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x1ba): In function `dsptrd_':
: undefined reference to `ddot_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x1ee): In function `dsptrd_':
: undefined reference to `daxpy_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x227): In function `dsptrd_':
: undefined reference to `dspr2_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x37f): In function `dsptrd_':
: undefined reference to `dspmv_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x3cd): In function `dsptrd_':
: undefined reference to `ddot_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x41c): In function `dsptrd_':
: undefined reference to `daxpy_'
/usr/lib64/liblapack.a(dsptrd.o)(.text+0x46a): In function `dsptrd_':
: undefined reference to `dspr2_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x5ee): In function `dstein_':
: undefined reference to `dcopy_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x635): In function `dstein_':
: undefined reference to `dcopy_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x66e): In function `dstein_':
: undefined reference to `dcopy_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x738): In function `dstein_':
: undefined reference to `dasum_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x76a): In function `dstein_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x88a): In function `dstein_':
: undefined reference to `ddot_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x8c7): In function `dstein_':
: undefined reference to `daxpy_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x8e3): In function `dstein_':
: undefined reference to `idamax_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x96b): In function `dstein_':
: undefined reference to `dnrm2_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x997): In function `dstein_':
: undefined reference to `idamax_'
/usr/lib64/liblapack.a(dstein.o)(.text+0x9cd): In function `dstein_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dsteqr.o)(.text+0x1097): In function `dsteqr_':
: undefined reference to `dswap_'
/usr/lib64/liblapack.a(dlarfg.o)(.text+0x4f): In function `dlarfg_':
: undefined reference to `dnrm2_'
/usr/lib64/liblapack.a(dlarfg.o)(.text+0x188): In function `dlarfg_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dlarfg.o)(.text+0x1eb): In function `dlarfg_':
: undefined reference to `dnrm2_'
/usr/lib64/liblapack.a(dlarfg.o)(.text+0x28c): In function `dlarfg_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dlarfg.o)(.text+0x312): In function `dlarfg_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dorg2l.o)(.text+0x220): In function `dorg2l_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dorg2r.o)(.text+0x25c): In function `dorg2r_':
: undefined reference to `dscal_'
/usr/lib64/liblapack.a(dlarf.o)(.text+0x108): In function `dlarf_':
: undefined reference to `dgemv_'
/usr/lib64/liblapack.a(dlarf.o)(.text+0x198): In function `dlarf_':
: undefined reference to `dgemv_'
/usr/lib64/liblapack.a(dlarf.o)(.text+0x1e2): In function `dlarf_':
: undefined reference to `dger_'
collect2: ld returned 1 exit status
make: *** [testeof.exe] Error 1
And I checked it online, somebody said that it is because blas.a hasnt been connected. but I have put it in my makefile, so why?
I also added /usr/lib64/libg2c.so.0, which I can find in the directory, although I dont know what it is for, and the error message is the same as before. So the point is that blas.a hasnt been connected actually?
thanks for your help! looking forward for your further help!
the error message is the following: