Skip to content

#1123 Multiple definition error in dune/istl/supermatrix.hh

Metadata

Property Value
Reported by Matthias Wohlmuth (matthias.wohlmuth@ma.tum.de)
Reported at Jun 5, 2012 14:28
Type Bug Report
Version Git (pre2.4) [autotools]
Operating System Unspecified / All
Last edited by Markus Blatt (markus@dr-blatt.de)
Last edited at Jun 8, 2012 11:08
Closed by Markus Blatt (markus@dr-blatt.de)
Closed at Jun 8, 2012 11:08
Closed in version Unknown
Resolution Fixed
Comment in rev. 1620

Description

In the current trunk, several static consts such as

static const Dtype_t GetSuperLUType::type=SLU_D;

are both declared and defined in <dune/istl/supermatrix.hh>

This leads to multiple definition errors if the file is included by several cc files (for example by another dune-based library).

:(.rodata+0x988): multiple definition of Dune::GetSuperLUType<double>::type' :(.rodata+0x3b0): first defined here :(.rodata+0x98c): multiple definition of Dune::GetSuperLUType::type' :(.rodata+0x3b4): first defined here :(.rodata+0x990): multiple definition of Dune::GetSuperLUType<std::complex<double> >::type' :(.rodata+0x3b8): first defined here :(.rodata+0x994): multiple definition of Dune::GetSuperLUType<std::complex >::type' :(.rodata+0x3bc): first defined here :(.rodata+0xa38): multiple definition of Dune::GetSuperLUType<double>::type' :(.rodata+0x3b0): first defined here :(.rodata+0xa3c): multiple definition of Dune::GetSuperLUType::type' :(.rodata+0x3b4): first defined here :(.rodata+0xa40): multiple definition of Dune::GetSuperLUType<std::complex<double> >::type' :(.rodata+0x3b8): first defined here :(.rodata+0xa44): multiple definition of Dune::GetSuperLUType<std::complex >::type' :(.rodata+0x3bc): first defined here :(.rodata+0x360): multiple definition of Dune::GetSuperLUType<double>::type' :(.rodata+0x3b0): first defined here :(.rodata+0x364): multiple definition of Dune::GetSuperLUType::type' :(.rodata+0x3b4): first defined here :(.rodata+0x368): multiple definition of Dune::GetSuperLUType<std::complex<double> >::type' :(.rodata+0x3b8): first defined here :(.rodata+0x36c): multiple definition of Dune::GetSuperLUType<std::complex >::type' :(.rodata+0x3bc): first defined here