Ondrej Certik writes:
 > > I'm using essentially an identical configuration.  OpenMPI uses an 
 > > ambitious
 > > set of shared libraries that defy typical PETSc snooping.
 > >
 > > The easy answer is to use the compiler wrappers provided with OpenMPI:
 > > $ ./configure --with-cxx=mpicxx --with-cc=mpicc --with-f77=mpif77
 > >
 > > ...and all the other options you had.
 > 
 > 
 > This works, thanks a lot! Now the package builds and ex2.C works.
 > 
 > But now I have hard time with the libgmv.so library, which
 > was added in 0.6.1? It seems libmesh is depending on it.
 > I created preliminary libmesh Debian package here:
 > 
 > http://debian.certik.cz/
 > 
 > But when building an example in the standard Debian way (but I think
 > it's the standard linux way):
 > 
 > $ g++ -I/usr/include/libmesh -I/usr/include/mpi -I/usr/include/petsc
 > -c -o ex2.o ex2.C
 > $ g++ -o ex2 ex2.o -lmesh -lpetsc -lpetscdm -lpetscksp -lpetscmat
 > -lpetscsnes -lpetscts -lpetscvec
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmv_data'
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmvread_data'
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmvread_close'
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmvread_open_fromfileskip'
 > collect2: ld returned 1 exit status
 > 
 > 
 > This used to work with 0.6.0 in Debian. So I included the libgmv.so in
 > the Debian package as well, put it to /usr/lib, but it seems it
 > doesn't work:
 > 
 > $ g++ -o ex2 ex2.o -lmesh -lgmv -lpetsc -lpetscdm -lpetscksp
 > -lpetscmat -lpetscsnes -lpetscts -lpetscvec
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmv_data'
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmvread_data'
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmvread_close'
 > /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libmesh.so:
 > undefined reference to `gmvread_open_fromfileskip'
 > collect2: ld returned 1 exit status
 > 
 > So I looked at what libraries you are linking in your way of building things:
 > 
 > $ make
 > Compiling C++ (in optimized mode) ex2.C...
 > Linking ex2-opt...
 > mpicxx -DNDEBUG  -O2 -felide-constructors -fPIC -funroll-loops
 > -fstrict-aliasing -Wdisabled-optimization
 > -DPETSC_USE_DYNAMIC_LIBRARIES  ex2.i686-pc-linux-gnu.opt.o -o ex2-opt
 > /home/ondra/debian/test/libmesh-0.6.1/lib/i686-pc-linux-gnu_opt/libmesh.so
 >       
 > /home/ondra/debian/test/libmesh-0.6.1/contrib/lib/i686-pc-linux-gnu_opt/libgmv.so
 > -L/usr/lib/petsc/lib/linux-gnu-c-opt -lpetscsnes -lpetscksp -lpetscdm
 > -lpetscmat -lpetscvec -lpetscsnes -lpetsc     -L/usr/lib -L/usr/lib
 > -lumfpack -L/usr/lib -L/usr/lib -lamd -L/usr/lib -L/usr/lib -lsuperlu
 >   -llapack-3 -lblas-3 -L/usr/lib/gcc/i486-linux-gnu/4.2.3
 > -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib -L/lib/../lib
 > -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../.. -ldl
 > -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90
 > -lmpi_f77 -lgfortranbegin -lgfortran -lm -lm -lm -lm
 > -L/usr/lib/gcc/i486-linux-gnu/4.2.3
 > -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib -L/lib/../lib
 > -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../.. -ldl
 > -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90
 > -lmpi_f77 -lgfortranbegin -lgfortran -lm -lm -lm -lm -lX11
 > -L/usr/lib/gcc/i486-linux-gnu/4.2.3
 > -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib -L/lib/../lib
 > -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.3/../../..
 > -lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -lnsl -lutil
 > -lgfortranbegin -lgfortran -lm -lgcc_s -lpthread
 > -Wl,-rpath,/home/ondra/debian/test/libmesh-0.6.1/lib/i686-pc-linux-gnu_opt
 > -Wl,-rpath,/home/ondra/debian/test/libmesh-0.6.1/contrib/lib/i686-pc-linux-gnu_opt
 > -Wl,-rpath,/usr/lib/petsc/lib/linux-gnu-c-opt
 > $
 > 
 > So I tried the same:
 > 
 > $ g++ -o ex2 ex2.o /usr/lib/libmesh.so -lpetsc -lpetscdm -lpetscksp
 > -lpetscmat -lpetscsnes -lpetscts -lpetscvec
 > /usr/lib/libmesh.so: undefined reference to `gmv_data'
 > /usr/lib/libmesh.so: undefined reference to `gmvread_data'
 > /usr/lib/libmesh.so: undefined reference to `gmvread_close'
 > /usr/lib/libmesh.so: undefined reference to `gmvread_open_fromfileskip'
 > collect2: ld returned 1 exit status
 > 
 > 
 > No luck - of course, the libgmv is not linked. But:
 > 
 > $ g++ -o ex2 ex2.o /usr/lib/libmesh.so /usr/lib/libgmv.so -lpetsc
 > -lpetscdm -lpetscksp -lpetscmat -lpetscsnes -lpetscts -lpetscvec
 > /usr/lib/libmesh.so: undefined reference to `gmv_data'
 > /usr/lib/libmesh.so: undefined reference to `gmvread_data'
 > /usr/lib/libmesh.so: undefined reference to `gmvread_close'
 > /usr/lib/libmesh.so: undefined reference to `gmvread_open_fromfileskip'
 > collect2: ld returned 1 exit status
 > 
 > 
 > Do you have any idea what's wrong?

The libgmv library is here:
 
/home/ondra/debian/test/libmesh-0.6.1/contrib/lib/i686-pc-linux-gnu_opt/libgmv.so

not in /usr/lib...


-J

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to