- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi
I Have been trying to compile the code of an application against PARDISO, without much sucess... :
alex@iskandhar:~/Desktop/Buildfactory/Calculix/CalculiX/ccx_2.5_Intel_Pa/src$ make
./date.pl; icc -Wall -O3 -I ../../../SPOOLES-2.2_Intel -DARCH="Linux" -DSPOOLES -DARPACK -DPARDISO -DMATRIXSTORAGE -DUSE_MT=1 -c ccx_2.5.c; ifort -O3 -nofor-main -openmp -o ccx_2.5 ccx_2.5.o ccx_2.5.a -liomp5 -lpthread -L /home/alex/Desktop/Buildfactory/Calculix/SPOOLES-2.2_Intel/libspooles.a /home/alex/Desktop/Buildfactory/Calculix/SPOOLES-2.2_Intel/MT/src/spoolesMT.a ../../../ARPACK_Intel/libarpack_Linux.a ../../../Pardiso/libpardiso412-INTEL120-X86-64.so /opt/intel/mkl/lib/intel64/libmkl_solver_lp64.a /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a /opt/intel/mkl/lib/intel64/libmkl_intel_thread.a /opt/intel/mkl/lib/intel64/libmkl_core.a /opt/intel/mkl/lib/intel64/libmkl_lapack95_lp64.a /opt/intel/mkl/lib/intel64/libmkl_blas95_lp64.a /opt/intel/mkl/lib/intel64/libmkl_scalapack_lp64.a -lm -lc -lutil -ldl -lpthread
ccx_2.5.a(spooles.o): In function `factor':
spooles.c:(.text+0x43): undefined reference to `DVfill'
spooles.c:(.text+0x50): undefined reference to `Graph_new'
spooles.c:(.text+0x5b): undefined reference to `InpMtx_fullAdjacency'
spooles.c:(.text+0x67): undefined reference to `IVL_tsize'
spooles.c:(.text+0x8b): undefined reference to `Graph_init2'
spooles.c:(.text+0xb7): undefined reference to `orderViaBestOfNDandMS'
spooles.c:(.text+0xce): undefined reference to `ETree_oldToNewVtxPerm'
This is my Makefile :
CFLAGS = -Wall -O3 -I ../../../SPOOLES-2.2_Intel -DARCH="Linux" -DSPOOLES -DARPACK -DPARDISO -DMATRIXSTORAGE -DUSE_MT=1
FFLAGS = -O3 -nofor-main -openmp
CC=icc
FC=ifort
.c.o :
$(CC) $(CFLAGS) -c $<
.f.o :
$(FC) $(FFLAGS) -c $<
include Makefile.inc
SCCXMAIN = ccx_2.5.c
OCCXF = $(SCCXF:.f=.o)
OCCXC = $(SCCXC:.c=.o)
OCCXMAIN = $(SCCXMAIN:.c=.o)
DIR=/home/alex/Desktop/Buildfactory/Calculix/SPOOLES-2.2_Intel
MKLROOT=/opt/intel/mkl
MKLPATH=/opt/intel/mkl/lib/intel64
MKLINCLUDE=/opt/intel/mkl/include
LIBS = \
$(DIR)/libspooles.a \
$(DIR)/MT/src/spoolesMT.a \
../../../ARPACK_Intel/libarpack_Linux.a \
../../../Pardiso/libpardiso412-INTEL120-X86-64.so \
/opt/intel/mkl/lib/intel64/libmkl_solver_lp64.a \
/opt/intel/mkl/lib/intel64/libmkl_intel_lp64.a \
/opt/intel/mkl/lib/intel64/libmkl_intel_thread.a \
/opt/intel/mkl/lib/intel64/libmkl_core.a \
/opt/intel/mkl/lib/intel64/libmkl_lapack95_lp64.a \
/opt/intel/mkl/lib/intel64/libmkl_blas95_lp64.a \
/opt/intel/mkl/lib/intel64/libmkl_scalapack_lp64.a \
-lm -lc -lutil -ldl -lpthread
ccx_2.5: $(OCCXMAIN) ccx_2.5.a $(LIBS)
./date.pl; $(CC) $(CFLAGS) -c ccx_2.5.c; $(FC) $(FFLAGS) -o $@ $(OCCXMAIN) ccx_2.5.a -liomp5 -lpthread -L${/opt/intel/mkl/lib/intel64} $(LIBS)
ccx_2.5.a: $(OCCXF) $(OCCXC)
ar vr $@ $?
How should i change this makefile, in order to work..?
BR
Alex
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
First, you should observe the recommendations of the link advisor on the MKL forum for the MKL part of this. Note that linking with MKL static libraries requires that you take into account the circular dependencies and the order of dependencies where they aren't circular. If you aren't interested in that, you should start with dynamic libraries. Your ifort command already implies several of the libraries you have specified explicitly, although we can't guess whether the details may have been meant for a different version. You should be using the same version of ifort and icpc (assuming the hints that you are using C++ instead of, or in addition to, C are valid). Then you will need to be showing your versions and error messages.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The undefined external symbols listed appear to be from one of your user libraries. Where are these routines contained?
I don't see why you mentioned Pardiso in your thread title. Please note that MKL itself contains Pardiso routines, so you have to be careful when linking to Pardiso-4.12.
As TimP wrote, you may find it better to get things working with dynamic libraries as a first step.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page