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