Problem in installation of Qbox in Ubuntu 20.04
Posted: Tue May 17, 2022 3:03 pm
Dear All,
I am trying to install Qbox code in my Ubuntu 20.04 machine and g++ - 9.4.0. I am using the gcc_atlas.mk build file provided in the build directory. I have installed all the libraries required and have provided the paths to them in the .mk file. However, I still get the following error-
/usr/bin/ld: /home/rajorshi/Downloads/scalapack-2.2.0/libscalapack.a(pxerbla.o): undefined reference to symbol '_gfortran_transfer_integer_write@@GFORTRAN_8'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libgfortran.so.5: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:65: qb] Error 1
The .mk file I have used is as follows:
# gcc_atlas.mk
PLT=Linux_x8664
SCALAPACKDIR = $(HOME)/Downloads/scalapack-2.2.0
XERCESCDIR=$(HOME)/Downloads/xerces-c-3.2.3/src/.libs
ATLASDIR=/usr/lib/x86_64-linux-gnu/atlas
PLTOBJECTS = readTSC.o
SVN_VER :=$(shell svnversion -n)
DFLAGS += -DSVN_VERSION='"$(SVN_VER)"'
CXX=mpicxx
LD=$(CXX)
PLTFLAGS += -DIA32 -D_LARGEFILE_SOURCE \
-D_FILE_OFFSET_BITS=64 -DUSE_MPI -DSCALAPACK -DADD_ \
-DAPP_NO_THREADS -DXML_USE_NO_THREADS -DUSE_XERCES \
-DMPICH_IGNORE_CXX_SEEK
# FFT must be FFTW2, FFTW3, ESSL or NOLIB
FFT=FFTW2
ifeq ($(FFT),FFTW2)
PLTFLAGS += -DUSE_FFTW2
PLTFLAGS += -DFFTWMEASURE
FFTWDIR=$(HOME)/Downloads/fftw-2.1.5/fftw
FFTWINCLUDEDIR=$(FFTWDIR)
FFTWLIBDIR=$(FFTWDIR)/.libs
INCLUDE += -I$(FFTWINCLUDEDIR)
LIBPATH += -L$(FFTWLIBDIR)
LIBS += -lfftw
endif
ifeq ($(FFT),FFTW3)
PLTFLAGS += -DUSE_FFTW3
PLTFLAGS += -DFFTWMEASURE
#PLTFLAGS += -DFFTW_TRANSPOSE
PLTFLAGS += -DFFTW3_2D
FFTWDIR=$(HOME)/software/fftw/fftw-3.3.4
FFTWINCLUDEDIR=$(FFTWDIR)/api
FFTWLIBDIR=$(FFTWDIR)/.libs
INCLUDE += -I$(FFTWINCLUDEDIR)
LIBPATH += -L$(FFTWLIBDIR)
LIBS += -lfftw3
endif
ifeq ($(FFT),ESSL)
$(error ESSL library not available)
endif
ifeq ($(FFT),NOLIB)
PLTFLAGS += -DFFT_NOLIB
endif
INCLUDE += -I$(XERCESCDIR)/include
CXXFLAGS= -g -O3 -Wunused -D$(PLT) $(INCLUDE) $(PLTFLAGS) $(DFLAGS)
LIBPATH += -L$(XERCESCDIR)/lib \
-L$(ATLASDIR) -L$(SCALAPACKDIR) -L/usr/lib64
LIBS += -lpthread -lxerces-c -lscalapack -llapack -lf77blas -latlas
LDFLAGS = $(LIBPATH) $(LIBS)
Can anyone help me solve this issue ? I thank you in advance
I am trying to install Qbox code in my Ubuntu 20.04 machine and g++ - 9.4.0. I am using the gcc_atlas.mk build file provided in the build directory. I have installed all the libraries required and have provided the paths to them in the .mk file. However, I still get the following error-
/usr/bin/ld: /home/rajorshi/Downloads/scalapack-2.2.0/libscalapack.a(pxerbla.o): undefined reference to symbol '_gfortran_transfer_integer_write@@GFORTRAN_8'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libgfortran.so.5: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [Makefile:65: qb] Error 1
The .mk file I have used is as follows:
# gcc_atlas.mk
PLT=Linux_x8664
SCALAPACKDIR = $(HOME)/Downloads/scalapack-2.2.0
XERCESCDIR=$(HOME)/Downloads/xerces-c-3.2.3/src/.libs
ATLASDIR=/usr/lib/x86_64-linux-gnu/atlas
PLTOBJECTS = readTSC.o
SVN_VER :=$(shell svnversion -n)
DFLAGS += -DSVN_VERSION='"$(SVN_VER)"'
CXX=mpicxx
LD=$(CXX)
PLTFLAGS += -DIA32 -D_LARGEFILE_SOURCE \
-D_FILE_OFFSET_BITS=64 -DUSE_MPI -DSCALAPACK -DADD_ \
-DAPP_NO_THREADS -DXML_USE_NO_THREADS -DUSE_XERCES \
-DMPICH_IGNORE_CXX_SEEK
# FFT must be FFTW2, FFTW3, ESSL or NOLIB
FFT=FFTW2
ifeq ($(FFT),FFTW2)
PLTFLAGS += -DUSE_FFTW2
PLTFLAGS += -DFFTWMEASURE
FFTWDIR=$(HOME)/Downloads/fftw-2.1.5/fftw
FFTWINCLUDEDIR=$(FFTWDIR)
FFTWLIBDIR=$(FFTWDIR)/.libs
INCLUDE += -I$(FFTWINCLUDEDIR)
LIBPATH += -L$(FFTWLIBDIR)
LIBS += -lfftw
endif
ifeq ($(FFT),FFTW3)
PLTFLAGS += -DUSE_FFTW3
PLTFLAGS += -DFFTWMEASURE
#PLTFLAGS += -DFFTW_TRANSPOSE
PLTFLAGS += -DFFTW3_2D
FFTWDIR=$(HOME)/software/fftw/fftw-3.3.4
FFTWINCLUDEDIR=$(FFTWDIR)/api
FFTWLIBDIR=$(FFTWDIR)/.libs
INCLUDE += -I$(FFTWINCLUDEDIR)
LIBPATH += -L$(FFTWLIBDIR)
LIBS += -lfftw3
endif
ifeq ($(FFT),ESSL)
$(error ESSL library not available)
endif
ifeq ($(FFT),NOLIB)
PLTFLAGS += -DFFT_NOLIB
endif
INCLUDE += -I$(XERCESCDIR)/include
CXXFLAGS= -g -O3 -Wunused -D$(PLT) $(INCLUDE) $(PLTFLAGS) $(DFLAGS)
LIBPATH += -L$(XERCESCDIR)/lib \
-L$(ATLASDIR) -L$(SCALAPACKDIR) -L/usr/lib64
LIBS += -lpthread -lxerces-c -lscalapack -llapack -lf77blas -latlas
LDFLAGS = $(LIBPATH) $(LIBS)
Can anyone help me solve this issue ? I thank you in advance