Hi!

I've just successfully compiled libmesh SVN on linux with GCC4.4.4 successfully 
and I'm eager to try to get some simple FEM programs working. The test programs 
compile and run fine. This was done with the command "make run_examples" from 
the libmesh directory. So the libmesh installation seems to be in order.

But when using 'libmesh-config' while compiling my own program I seem to get 
linkage problems related to laspack. The error messages are included at the 
bottom of this message, but first some other details:

I'm on a 64bit linux computer running Debian Sid. To compile my own program, I 
follow the suggestion at the bottom of this page:

http://libmesh.sourceforge.net/installation.php

I have a single file 'Test2.cpp' that I compile with the command:

g++ Test2.cpp `~/src/libmesh/libmesh/contrib/bin/libmesh-config --cxxflags 
--include --ldflags`

I've compiled libmesh in the directory /home/tmac/src/libmesh/libmesh

I get the following error messages:

t...@asus Test2$ make
g++ Test1.cpp -o Test1.elf -Wall -Wextra  -I/home/tmac/programming/include 
-I/home/tmac/research/include 
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/liblaspack.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libparmetis.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libmetis.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libsfcurves.so
 
-L/usr/lib -ltbb -ltbbmalloc 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libgzstream.so
 
-lz 
/home/tmac/src/libmesh/libmesh/contrib/tecplot/lib/x86_64-unknown-linux-gnu/tecio.a
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libgmv.so
 -Wl,-rpath,/usr/lib 
-L/usr/lib -lvtkIO -lvtkCommon -lvtkFiltering -Wl,-rpath,/usr/lib -L/usr/lib 
-lglpk 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libtetgen.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libtriangle.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libexodusii.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libnetcdf.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libnemesis.so
 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/libHilbert.so
 
-L/usr/lib/petsc/linux-gnu-c-opt/lib -L/usr/lib/petsc/linux-gnu-c-opt/lib 
-lpetsc -lX11 -L/usr/lib -lspooles -lHYPRE -lscotch -lhdf5_fortran -lhdf5 -lz 
-lumfpack -lamd -llapack -lblas -L/usr/lib/openmpi/lib 
-L/usr/lib/gcc/x86_64-linux-gnu/4.4.5 -ldl -lmpi -lopen-rte -lopen-pal -lnsl 
-lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77 -lgfortran -lm -lm 
-L/usr/lib/gcc/x86_64-linux-gnu -lm -lm -lmpi_cxx -lstdc++ -lmpi_cxx -lstdc++ 
-ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -ldl 
-Wl,-rpath,/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt 
-Wl,-rpath,/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt
 
-Wl,-rpath,/usr/lib/petsc/linux-gnu-c-opt/lib 
-Wl,-rpath,/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt 
-Wl,-rpath,/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt
 
-Wl,-rpath,/usr/lib/petsc/linux-gnu-c-opt/lib 
-I/home/tmac/src/libmesh/libmesh/include/base 
-I/home/tmac/src/libmesh/libmesh/include/enums 
-I/home/tmac/src/libmesh/libmesh/include/error_estimation 
-I/home/tmac/src/libmesh/libmesh/include/fe 
-I/home/tmac/src/libmesh/libmesh/include/geom 
-I/home/tmac/src/libmesh/libmesh/include/mesh 
-I/home/tmac/src/libmesh/libmesh/include/numerics 
-I/home/tmac/src/libmesh/libmesh/include/parallel 
-I/home/tmac/src/libmesh/libmesh/include/partitioning 
-I/home/tmac/src/libmesh/libmesh/include/quadrature 
-I/home/tmac/src/libmesh/libmesh/include/solvers 
-I/home/tmac/src/libmesh/libmesh/include/systems 
-I/home/tmac/src/libmesh/libmesh/include/utils 
-I/home/tmac/src/libmesh/libmesh/contrib/boost 
-I/home/tmac/src/libmesh/libmesh/contrib/laspack 
-I/home/tmac/src/libmesh/libmesh/contrib/parmetis/Lib 
-I/home/tmac/src/libmesh/libmesh/contrib/metis/Lib 
-I/home/tmac/src/libmesh/libmesh/contrib/sfcurves -I/usr/include 
-I/home/tmac/src/libmesh/libmesh/contrib/gzstream 
-I/home/tmac/src/libmesh/libmesh/contrib/tecplot/include 
-I/home/tmac/src/libmesh/libmesh/contrib/gmv -I/usr/include/vtk-5.4 
-I/usr/include -I/home/tmac/src/libmesh/libmesh/contrib/tetgen 
-I/home/tmac/src/libmesh/libmesh/contrib/triangle 
-I/home/tmac/src/libmesh/libmesh/contrib/exodusii/Lib/include 
-I/home/tmac/src/libmesh/libmesh/contrib/netcdf/Lib 
-I/home/tmac/src/libmesh/libmesh/contrib/nemesis/Lib 
-I/home/tmac/src/libmesh/libmesh/contrib/libHilbert/include 
-I/usr/lib/petsc/include -I/usr/lib/petsc/bmake/linux-gnu-c-opt 
-I/usr/lib/petsc/linux-gnu-c-opt/include -I/usr/include 
-I/usr/lib/openmpi/include -I/usr/lib/openmpi/lib -I/usr/include/spooles 
-I/usr/lib/openmpi/include -I/usr/lib/openmpi/lib -I/usr/include 
-I/usr/include/scotch -I/usr/lib -I/usr/include/suitesparse 
-I/usr/lib/openmpi/include -I/usr/lib/openmpi/lib     -O2 -felide-constructors 
-fPIC -funroll-loops -fstrict-aliasing -Wdisabled-optimization
In file included from 
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:288,
                  from /usr/lib/openmpi/include/mpi.h:1886,
                  from 
/home/tmac/src/libmesh/libmesh/include/base/libmesh_common.h:31,
                  from /home/tmac/src/libmesh/libmesh/include/base/libmesh.h:30,
                  from Test1.cpp:4:
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:644: warning: unused 
parameter ‘oldcomm’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:644: warning: unused 
parameter ‘comm_keyval’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:644: warning: unused 
parameter ‘extra_state’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:644: warning: unused 
parameter ‘attribute_val_in’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:644: warning: unused 
parameter ‘attribute_val_out’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:671: warning: unused 
parameter ‘comm’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:671: warning: unused 
parameter ‘comm_keyval’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:671: warning: unused 
parameter ‘attribute_val’
/usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/comm_inln.h:671: warning: unused 
parameter ‘extra_state’
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `V_Destr(QVector*)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `Mul_QV(QMatrixType*, QVector*)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `SetGMRESRestart(int)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `l2Norm_V(QVector*)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `BiCGSTABIter(QMatrixType*, QVector*, QVector*, int, 
QVector* (*)(QMatrixType*, QVector*, QVector*, std::complex<double>), 
std::complex<double>)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `V_Constr(QVector*, char*, unsigned long, InstanceType, 
bool)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `Q_GetEl(QMatrixType*, unsigned long, unsigned long)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `CGIter(QMatrixType*, QVector*, QVector*, int, QVector* 
(*)(QMatrixType*, QVector*, QVector*, std::complex<double>), 
std::complex<double>)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `ILUPrecond(QMatrixType*, QVector*, QVector*, 
std::complex<double>)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `AddAsgn_VV(QVector*, QVector*)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `GMRESIter(QMatrixType*, QVector*, QVector*, int, 
QVector* (*)(QMatrixType*, QVector*, QVector*, std::complex<double>), 
std::complex<double>)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `SSORPrecond(QMatrixType*, QVector*, QVector*, 
std::complex<double>)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `Q_SetEntry(QMatrixType*, unsigned long, unsigned long, 
unsigned long, std::complex<double>)'
/home/tmac/src/libmesh/libmesh/lib/x86_64-unknown-linux-gnu_opt/libmesh.so: 
undefined reference to `MaxNorm_V(QVector*)'
.
.
.
.

and so on.

I discovered using the command "nm" that at least some of these symbols are 
located in the file

/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/liblaspack.so

which exists on my system since it was compiled during the libmesh build. As 
you 
can see here:

$file 
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/liblaspack.so
/home/tmac/src/libmesh/libmesh/contrib/lib/x86_64-unknown-linux-gnu_opt/liblaspack.so:
 
ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not 
stripped

Now, as seen in the first part of the above compilation output message (in the 
compilation command line printer by 'make', which is quite large due to the 
massive output of from libmesh-config), this filename is mentioned near the 
top, 
so I don't understand why these "undefined references" to symbols within 
liblaspack.so appear...

If more details are needed, please do not hesitate to ask.

Best regards and thanks,
Torquil Sørensen

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to