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
