compilation of Matrix Template Library for Win32 executable

"Robert M Dorazio" <[email protected]>
Newsgroups gmane.comp.lib.mtl.devel
Message-ID <[email protected]>
I am having difficulty getting one of the example programs
"contrib/examples/vec_min.cc" of the Matrix Template Library to compile
properly.

I'm using the Mingw port of gcc 3.2 (www.mingw.org/) to create a native
Win32 executable.  The makefile and compiler error messages are provided
below.  Any help is greatly appreciated!

Bob Dorazio


/****************************************** MAKEFILE
*****************************/
# Project: TestMTL

CC   = g++.exe
OBJ  = vec_min.o
LIBS =  -Lc:/MinGW/lib
INCS =  -Ic:/MinGW/include  -Ic:/MingGW/include/c++/3.2 -Ic:/mtl-2.1.2-20
BIN  = TestMTL.exe
CFLAGS = $(INCS)  -s

.PHONY: all all-before all-after clean clean-custom

all: all-before TestMTL.exe all-after


clean: clean-custom
      rm -f $(OBJ) $(BIN)

$(BIN): $(OBJ)
      $(CC) $(OBJ) -o TestMTL.exe $(LIBS) $(CFLAGS)

vec_min.o: vec_min.cc
      $(CC) -c vec_min.cc -o vec_min.o $(CFLAGS)



/****************************************** COMPILER MESSAGES
***********************************************/
C:\Junk\hero>mingw32-make
g++.exe -c vec_min.cc -o vec_min.o -Ic:/MinGW/include
-Ic:/MingGW/include/c++/3.2 -Ic:/mtl-2.1.2-20
  -s
In file included from c:/mtl-2.1.2-20/mtl/light1D.h:34,
                 from c:/mtl-2.1.2-20/mtl/dense1D.h:37,
                 from vec_min.cc:2:
c:/mtl-2.1.2-20/mtl/matrix_traits.h:10: parse error before `__attribute__'
c:/mtl-2.1.2-20/mtl/matrix_traits.h:153: `SPARSE' was not declared in this
   scope
c:/mtl-2.1.2-20/mtl/matrix_traits.h:153: enumerator value for `id' not
integer
   constant
In file included from c:/mtl-2.1.2-20/mtl/mtl.h:42,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/abs.h: In function `double std::abs(double)':
c:/mtl-2.1.2-20/mtl/abs.h:8: redefinition of `double std::abs(double)'
c:/MinGW/include/c++/3.2/cmath:87: `double std::abs(double)' previously
defined
   here
c:/mtl-2.1.2-20/mtl/abs.h:8: redefinition of `double std::abs(double)'
c:/MinGW/include/c++/3.2/cmath:87: `double std::abs(double)' previously
defined
   here
c:/mtl-2.1.2-20/mtl/abs.h: In function `float std::abs(float)':
c:/mtl-2.1.2-20/mtl/abs.h:11: redefinition of `float std::abs(float)'
c:/MinGW/include/c++/3.2/cmath:91: `float std::abs(float)' previously
defined
   here
c:/mtl-2.1.2-20/mtl/abs.h:11: redefinition of `float std::abs(float)'
c:/MinGW/include/c++/3.2/cmath:91: `float std::abs(float)' previously
defined
   here
In file included from c:/mtl-2.1.2-20/mtl/compressed1D.h:38,
                 from c:/mtl-2.1.2-20/mtl/matrix.h:45,
                 from c:/mtl-2.1.2-20/mtl/mtl.h:52,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/entry.h: In function `mtl::elt_ref<OneD>::value_type
   mtl::operator+(const mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:255: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:255: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `mtl::elt_ref<OneD>::value_type
   mtl::operator-(const mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:256: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:256: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `mtl::elt_ref<OneD>::value_type
   mtl::operator*(const mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:257: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:257: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `mtl::elt_ref<OneD>::value_type
   mtl::operator/(const mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:258: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:258: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator==(const
   mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:275: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:275: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator!=(const
   mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:276: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:276: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator<(const
   mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:277: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:277: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator>(const
   mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:278: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:278: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator<=(const
   mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:279: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:279: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator>=(const
   mtl::elt_ref<T>&, const mtl::elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:280: warning: `typename
   mtl::elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:280: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function
`mtl::const_elt_ref<OneD>::value_type
   mtl::operator+(const mtl::const_elt_ref<OneD>&, const
   mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:298: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:298: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function
`mtl::const_elt_ref<OneD>::value_type
   mtl::operator-(const mtl::const_elt_ref<OneD>&, const
   mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:299: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:299: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function
`mtl::const_elt_ref<OneD>::value_type
   mtl::operator*(const mtl::const_elt_ref<OneD>&, const
   mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:300: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:300: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function
`mtl::const_elt_ref<OneD>::value_type
   mtl::operator/(const mtl::const_elt_ref<OneD>&, const
   mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:301: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:301: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator==(const
   mtl::const_elt_ref<OneD>&, const mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:320: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:320: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator!=(const
   mtl::const_elt_ref<OneD>&, const mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:321: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:321: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator<(const
   mtl::const_elt_ref<OneD>&, const mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:322: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:322: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator>(const
   mtl::const_elt_ref<OneD>&, const mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:323: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:323: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator<=(const
   mtl::const_elt_ref<OneD>&, const mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:324: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:324: warning: implicit typename is deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/entry.h: In function `bool mtl::operator>=(const
   mtl::const_elt_ref<OneD>&, const mtl::const_elt_ref<U>&)':
c:/mtl-2.1.2-20/mtl/entry.h:325: warning: `typename
   mtl::const_elt_ref<OneD>::value_type' is implicitly a typename
c:/mtl-2.1.2-20/mtl/entry.h:325: warning: implicit typename is deprecated,
   please see the documentation for details
In file included from c:/mtl-2.1.2-20/mtl/matrix.h:45,
                 from c:/mtl-2.1.2-20/mtl/mtl.h:52,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/compressed1D.h: At global scope:
c:/mtl-2.1.2-20/mtl/compressed1D.h:87: `index_from_zero' was not declared
in
   this scope
In file included from c:/mtl-2.1.2-20/mtl/matrix.h:52,
                 from c:/mtl-2.1.2-20/mtl/mtl.h:52,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/dense2D.h: In member function `void mtl::dense2D<T,
   OffsetGen, MM, NN>::resize(mtl::generic_dense2D<std::vector<T,
   std::allocator<_CharT> >, mtl::refcnt_ptr<std::vector<T,
   std::allocator<_CharT> > >, OffsetGen, MM, NN>::size_type,
   mtl::generic_dense2D<std::vector<T, std::allocator<_CharT> >,
   mtl::refcnt_ptr<std::vector<T, std::allocator<_CharT> > >, OffsetGen,
MM,
   NN>::size_type)':
c:/mtl-2.1.2-20/mtl/dense2D.h:1232: warning: `typename mtl::dense2D<T,
   OffsetGen, MM, NN>::rep_ptr' is implicitly a typename
c:/mtl-2.1.2-20/mtl/dense2D.h:1232: warning: implicit typename is
deprecated,
   please see the documentation for details
In file included from c:/mtl-2.1.2-20/mtl/matrix.h:53,
                 from c:/mtl-2.1.2-20/mtl/mtl.h:52,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/array2D.h: In member function `void
   mtl::array2D<OneD_>::print() const':
c:/mtl-2.1.2-20/mtl/array2D.h:319: warning: `typename std::vector<T,
   std::allocator<_CharT> >::const_iterator' is implicitly a typename
c:/mtl-2.1.2-20/mtl/array2D.h:319: warning: implicit typename is
deprecated,
   please see the documentation for details
In file included from c:/mtl-2.1.2-20/mtl/matrix.h:55,
                 from c:/mtl-2.1.2-20/mtl/mtl.h:52,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/envelope2D.h: At global scope:
c:/mtl-2.1.2-20/mtl/envelope2D.h:362: warning: `typename
   mtl::envelope2D<T>::vec_ref::reference' is implicitly a typename
c:/mtl-2.1.2-20/mtl/envelope2D.h:362: warning: implicit typename is
deprecated,
   please see the documentation for details
c:/mtl-2.1.2-20/mtl/envelope2D.h:366: warning: `typename
   mtl::envelope2D<T>::vec_ref::reference' is implicitly a typename
c:/mtl-2.1.2-20/mtl/envelope2D.h:366: warning: implicit typename is
deprecated,
   please see the documentation for details
In file included from c:/mtl-2.1.2-20/mtl/matrix.h:60,
                 from c:/mtl-2.1.2-20/mtl/mtl.h:52,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/uplo.h: In member function `std::pair<int, int>
   mtl::dynamic_uplo__::bandwidth(int, int) const':
c:/mtl-2.1.2-20/mtl/uplo.h:90: `upper' undeclared (first use this function)
c:/mtl-2.1.2-20/mtl/uplo.h:90: (Each undeclared identifier is reported only
   once for each function it appears in.)
c:/mtl-2.1.2-20/mtl/uplo.h:93: `unit_upper' undeclared (first use this
   function)
c:/mtl-2.1.2-20/mtl/uplo.h:96: `lower' undeclared (first use this function)
c:/mtl-2.1.2-20/mtl/uplo.h:99: `unit_lower' undeclared (first use this
   function)
In file included from c:/mtl-2.1.2-20/mtl/mtl.h:52,
                 from vec_min.cc:3:
c:/mtl-2.1.2-20/mtl/matrix.h: At global scope:
c:/mtl-2.1.2-20/mtl/matrix.h:188: `internal' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:211: `internal' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:276: `dynamic_uplo' was not declared in this
scope
c:/mtl-2.1.2-20/mtl/matrix.h:323: `dynamic_uplo' was not declared in this
scope
c:/mtl-2.1.2-20/mtl/matrix.h:334: `dynamic_uplo' was not declared in this
scope
c:/mtl-2.1.2-20/mtl/matrix.h:385: `internal' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:423: `internal' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:426: parse error before `__attribute__'
c:/mtl-2.1.2-20/mtl/matrix.h:426: missing ';' before right brace
c:/mtl-2.1.2-20/mtl/matrix.h:438: `internal' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:500: `internal' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:501: `index_from_zero' was not declared in
this
   scope
c:/mtl-2.1.2-20/mtl/matrix.h:559: parse error before `<' token
c:/mtl-2.1.2-20/mtl/matrix.h:562: `ARRAY' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:562: `OneD' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:562: parse error before `::' token
c:/mtl-2.1.2-20/mtl/matrix.h:593: `internal' was not declared in this scope
c:/mtl-2.1.2-20/mtl/matrix.h:594: definition of `struct envelope' inside
   template parameter list
c:/mtl-2.1.2-20/mtl/matrix.h:595: confused by earlier errors, bailing out
mingw32-make: *** [vec_min.o] Error 1


******************************************************************************

Bob Dorazio
United States Geological Survey
7920 NW 71 Street
Gainesville, Florida  32653
Phone:  (352) 378-8181 x373
Fax:    (352) 378-4956
Email:  [email protected]
Internet:  www.fcsc.usgs.gov


_______________________________________________
This list is archived at http://www.osl.iu.edu/MailArchives/mtl-devel/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.