我在我的Fedora Core 12 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 ++编译器。
有没有人有clye?
答案 0 :(得分:0)
问题在于您的代码,几乎百分百保证。
查找带尺寸的含糊不清的声明,即
typedef mtl::envelope2D<T>::dimension dimension
答案 1 :(得分:0)
嗯,我也是这么想的,但是与MTL捆绑的测试套件也会发生这种情况。
答案 2 :(得分:0)
今天mtl-2.1.2-23.tentative.tar.gz版本的MTL也遇到了同样的问题。
解决方案是改变:
typedef dimension<size_type> dim_type;
到
typedef mtl::dimension<size_type> dim_type;
在envelope2D.h文件中的。 我还必须添加
#include <cstddef>
在light1D.h的开头。