我已经在我的Fedora Core12 x64系统上安装了MTL,但是在构建应用程序时,我得到了以下错误:
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这意味着MTL中存在错误。我已经更换了不同的MTL版本,问题仍然存在,但在Google上没有正确的答案。我使用g++编译器。
有没有人有克莱尔?
发布于 2010-05-12 01:25:10
问题出在你的代码里,几乎百分之百的保证。
查找带有维度的不明确声明,即typedef mtl::envelope2D<T>::dimension dimension
发布于 2010-05-12 15:31:55
好吧,我也是这么想的,但这也发生在与MTL捆绑在一起的测试套件中。
发布于 2012-06-20 19:57:01
我今天用mtl-2.1.2-23.tentative.tar.gz版本的MTL也遇到了同样的问题。
解决方案是改变:
typedef dimension<size_type> dim_type;至
typedef mtl::dimension<size_type> dim_type;在encapene2d.h文件中。我还得加一句
#include <cstddef>在light1D.h的开始。
https://stackoverflow.com/questions/2812869
复制相似问题