-   Linux - Software (
-   -   Error when "make" the source of CosmoMC: undefined reference to `dpotrf_' (

limh 09-15-2009 09:00 PM

Error when "make" the source of CosmoMC: undefined reference to `dpotrf_'
Hi, everyone! Sorry to bother you again!

I used a Linux Fedora 11 system and have both Gfortran and Intel Fortran Compiler 11.1 installed. My CPU is Intel Duo Core E7400 and the memory is 3.0GB. Below is part of the Makefile in my source subdirectory:

#Intel fortran 8, check you have the latest update from the Intel web pages
#See Makefile_intel for ifc 7.1 or lower (some versions have problems)
F90C = ifort
FFLAGS = -O2 -Vaxlib -ip -W0 -WB -openmp -fpp
LAPACKL = -L/opt/intel/Compiler/11.1/046/mkl/lib/32 -lmkl_lapack95 \
-L/opt/intel/Compiler/11.1/046/lib/ia32 -lguide \
-L/usr/lib -lpthread
And the feedback is:

WMAP_5yr_tt_beam_ptsrc_chisq.f90:(.text+0x1578): undefined reference to `dpotrf_'
WMAP_5yr_tt_beam_ptsrc_chisq.f90:(.text+0x1784): undefined reference to `dpotrs_'
WMAP_5yr_tt_beam_ptsrc_chisq.f90:(.text+0x1d65): undefined reference to `dpotrs_'
Matrix_utils.o: In function `matrixutils_mp_matrix_diagonalize_':
Matrix_utils.F90:(.text+0x1bb5): undefined reference to `ssyev_'
Matrix_utils.o: In function `matrixutils_mp_matrix_diagonalize_dc_':
Matrix_utils.F90:(.text+0x1df7): undefined reference to `ssyevd_'

But I did give the full path to the library package lapack or so, why didn't it work?!
All help is welcome ,thanks !!!!

GrapefruiTgirl 09-30-2009 02:27 PM

When I have seen similar errors when trying to build stuff, it's usually because some header files are either missing from the system, or are not in the search path if the compiler/linker.

I notice you have specified some lib directories and libs to use, with the -L and -l flags, but I suggest you also add a few -I flags, to point the build process at the /include directories containing the missing header(s).

How to figure out which header file(s) are missing? Well, either re-examine all the output of the build process before it quits, and look for "file not found" errors referring to header files, or do a search using your file-manager, or something like `find` and `grep` to find files that ARE on the system, and contain the defines for (the words) "dpotrf_" and/or "dpotrs_" and/or "ssyevd_", and then make sure that these files' path/location is in the search path of the compiler/linker.

Kind regards,

All times are GMT -5. The time now is 05:54 PM.