1

请帮助我理解 gcc 编译器的输出。我完全糊涂了。

我有一个错误:

C/types.h:47:56: error: declaration of 
'struct VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>'

这对我来说已经听起来很奇怪。

在 types.h:47 我看到:

template<typename V, size_t Size1, size_t Size2> class MM;

这对我来说看起来不错。

这是构建日志中的第二条错误消息,我想知道它是否只是第一个错误的第二部分?这里第一个和第二个错误一起出现:

<... compiles normally, no errors ...>

In file included from A/T.h:14:0,
                 from B/I.h:5,
                 from B/F.cxx:54:
A/AArray.h: In instantiation of 
'AInternal::AlignedData<VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>, 104u, 0>':
A/AArray.h:561:125:   instantiated from 
'AFArray<VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>, AArraySize<104u> >'
A/V.h:73:99:   instantiated from here
A/AArray.h:364:20: error: 'AInternal::AlignedData<T, Size, 0>::fArray' 
  has incomplete type

C/types.h:47:56: error: declaration of 
'struct VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>'

In file included from <...other errors...>

在 A/Vh:73 我有:

 AFArray<VV::SSS::Vector<short unsigned int>::MM, AAArraySize<N> > fAlpha;

我相信可以触发日志中的第二行:

A/AArray.h: In instantiation of 
'AInternal::AlignedData<VV::MM<VV::SSS::Vector<short unsigned int>, 8u, 0u>, 104u, 0>':

因为 VV::SSS::Vector::MM 是未定义类型,因为第二个错误。

所以我有两个问题:

  1. 第二个错误消息是第一个错误的一部分吗?
  2. 这个声明有什么问题?
4

1 回答 1

0

问题是我丢失了带有已定义 MM 类描述的文件。那些文件已被找到并添加到包含错误消失的路径。

我的问题的答案:

第二个错误消息是第一个错误的一部分吗?

是的。看起来是这样。

这个声明有什么问题?

没有错,编译器只是告诉与错误声明相关的存在。

于 2013-08-16T20:10:03.080 回答