2010-05-11 11 views
0

J'ai installé sur mon MTL Fedora Core 12 système x64, mais lors de la construction d'une application que je reçois l'erreur suivante:C++ MTL Bibliothèque dimension.h bug?

In file included from /usr/local/include/mtl/matrix.h:41, 
       from /usr/local/include/mtl/mtl.h:40, 
       from ltiSystem.hxx:4, 
       from strTools.hxx:4, 
       from ff.cxx:3: 
/usr/local/include/mtl/envelope2D.h:72: error: declaration of ‘typedef struct mtl::twod_tag mtl::envelope2D<T>::dimension’ 
/usr/local/include/mtl/dimension.h:19: error: changes meaning of ‘dimension’ from ‘class mtl::dimension<typename mtl::dense1D<T, 0>::size_type, 0, 0>’ 
make[1]: *** [ff.o] Error 1 

Ce qui impliquerait une erreur dans MTL. J'ai changé pour différentes versions de MTL et le problème persiste, mais sur Google il n'y a pas de bonne réponse. J'utilise le compilateur g ++.

Est-ce que quelqu'un a un clye?

Répondre

0

le problème est dans votre code, presque garantie à cent pour cent.

Rechercher déclaration ambiguë avec la dimension, à savoir typedef mtl::envelope2D<T>::dimension dimension

0

Eh bien, ce que je pensais aussi, mais il arrive aussi avec la suite de test qui est livré avec MTL.

0

J'ai eu le même problème aujourd'hui avec la version mtl-2.1.2-23.tentative.tar.gz de MTL.

La solution était de changer:

typedef dimension<size_type> dim_type; 

à

typedef mtl::dimension<size_type> dim_type; 

dans le fichier envelope2D.h. Je devais aussi ajouter

#include <cstddef> 

au début de light1D.h.