I found removing extern "C" in lac/source/sparsity_tools.cc can resolve this issue.
Mengda On Fri, Jul 3, 2009 at 1:16 PM, Mengda Wu <[email protected]> wrote: > Hi all, > > I am trying to compile with the svn version of dealii but some errors > occur related to MPI. I am using > openmpi and petsc in Ubuntu karmic. The command I used to configure is > > CC=mpicc CXX=mpicxx F77=mpif77 F90=mpif90 ./configure > --with-petsc=/usr/lib/petscdir/3.0.0 --with-petsc-arch=linux-gnu-c-opt > --with-slepc=/usr/lib/slepcdir/3.0.0 --with-slepc-arch=linux-gnu-c-opt > --with-metis-include=/usr/include/metis --with-metis-libs=/usr/lib > --with-umfpack-include=/usr/include/suitesparse --with-umfpack-libs=/usr/lib > > The error messages are > =====lac==============optimized==MT== sparsity_pattern.cc > =====lac==============optimized==MT== sparsity_tools.cc > In file included from /usr/include/c++/4.4/utility:62, > from > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:37, > from /usr/lib/openmpi/include/mpi.h:1870, > from /usr/include/parmetis.h:17, > from /usr/include/metis/metis.h:27, > from source/sparsity_tools.cc:23: > /usr/include/c++/4.4/bits/stl_relops.h:83: error: template with C linkage > /usr/include/c++/4.4/bits/stl_relops.h:96: error: template with C linkage > /usr/include/c++/4.4/bits/stl_relops.h:109: error: template with C linkage > /usr/include/c++/4.4/bits/stl_relops.h:122: error: template with C linkage > In file included from > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:202, > from /usr/lib/openmpi/include/mpi.h:1870, > from /usr/include/parmetis.h:17, > from /usr/include/metis/metis.h:27, > from source/sparsity_tools.cc:23: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h:61: error: > declaration of C function ‘void MPI::Init()’ conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h:58: error: > previous declaration ‘void MPI::Init(int&, char**&)’ here > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h:86: error: > declaration of C function ‘int MPI::Init_thread(int)’ conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h:83: error: > previous declaration ‘int MPI::Init_thread(int&, char**&, int)’ here > In file included from > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:237, > from /usr/lib/openmpi/include/mpi.h:1870, > from /usr/include/parmetis.h:17, > from /usr/include/metis/metis.h:27, > from source/sparsity_tools.cc:23: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h:40: error: declaration > of C function ‘void MPI::Register_datarep(const char*, int (*)(void*, > ompi_datatype_t*, int, void*, MPI_Offset, void*), void (*)(void*, > MPI::Datatype&, int, void*, MPI::Offset, void*), void (*)(const > MPI::Datatype&, MPI::Aint&, void*), void*)’ conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h:29: error: previous > declaration ‘void MPI::Register_datarep(const char*, void (*)(void*, > MPI::Datatype&, int, void*, MPI::Offset, void*), void (*)(void*, > MPI::Datatype&, int, void*, MPI::Offset, void*), void (*)(const > MPI::Datatype&, MPI::Aint&, void*), void*)’ here > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h:47: error: declaration > of C function ‘void MPI::Register_datarep(const char*, void (*)(void*, > MPI::Datatype&, int, void*, MPI::Offset, void*), int (*)(void*, > ompi_datatype_t*, int, void*, MPI_Offset, void*), void (*)(const > MPI::Datatype&, MPI::Aint&, void*), void*)’ conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h:36: error: previous > declaration ‘void MPI::Register_datarep(const char*, int (*)(void*, > ompi_datatype_t*, int, void*, MPI_Offset, void*), void (*)(void*, > MPI::Datatype&, int, void*, MPI::Offset, void*), void (*)(const > MPI::Datatype&, MPI::Aint&, void*), void*)’ here > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h:54: error: declaration > of C function ‘void MPI::Register_datarep(const char*, int (*)(void*, > ompi_datatype_t*, int, void*, MPI_Offset, void*), int (*)(void*, > ompi_datatype_t*, int, void*, MPI_Offset, void*), void (*)(const > MPI::Datatype&, MPI::Aint&, void*), void*)’ conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/file.h:43: error: previous > declaration ‘void MPI::Register_datarep(const char*, void (*)(void*, > MPI::Datatype&, int, void*, MPI::Offset, void*), int (*)(void*, > ompi_datatype_t*, int, void*, MPI_Offset, void*), void (*)(const > MPI::Datatype&, MPI::Aint&, void*), void*)’ here > In file included from > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:286, > from /usr/lib/openmpi/include/mpi.h:1870, > from /usr/include/parmetis.h:17, > from /usr/include/metis/metis.h:27, > from source/sparsity_tools.cc:23: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:96: error: > ‘void MPI::Init(int&, char**&)’ should have been declared inside ‘MPI’ > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h: In function > ‘void MPI::Init(int&, char**&)’: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:96: error: > declaration of C function ‘void MPI::Init(int&, char**&)’ conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions.h:61: error: > previous declaration ‘void MPI::Init()’ here > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h: At global > scope: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:103: error: > ‘void MPI::Init()’ should have been declared inside ‘MPI’ > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h: In function > ‘void MPI::Init()’: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:103: error: > declaration of C function ‘void MPI::Init()’ conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:96: error: > previous declaration ‘void MPI::Init(int&, char**&)’ here > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h: At global > scope: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:147: error: > ‘int MPI::Init_thread(int&, char**&, int)’ should have been declared inside > ‘MPI’ > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h: In function > ‘int MPI::Init_thread(int&, char**&, int)’: > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:147: error: > declaration of C function ‘int MPI::Init_thread(int&, char**&, int)’ > conflicts with > /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/functions_inln.h:137: error: > previous declaration ‘int MPI::Init_thread(int)’ here > make[1]: *** [/home/phdggg/Develop/deal.II/lib/lac/sparsity_tools.o] Error > 1 > make[1]: Leaving directory `/home/phdggg/Develop/deal.II/lac' > make: *** [laco] Error 2 > > I hope someone can help me on this issue. > > Thanks, > Mengda >
_______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
