语言陷阱:armcc诡异的Error: L6218E

提前声明,我并未深入研究这个问题,只是觉得诡异而已。

今天在我的一个进行中的项目中,大量使用了array模板(源代码在之前的文章中有),在编译的时候出现了link错误:

Error: L6218E: Undefined symbol ARRAY::~ARRAY() (referred from XXX.o).

看了XXX.h文件,array.h已经添加,应该没有什么问题。使用的用法大概如下(精简后的结构,原始类比这个要复杂的多):

       #include "array.h"
       class XXX
       {
       public:
       XXX(){};
       virtual ~XXX(){};
       static ARRAY< ARRAY > getmatrix()
       {
       ARRAY< ARRAY > result;
       return result;
       }
       };
       

我原始类里面还有其他类型array模板类型,这里只是突出ARRAY,然后就出现了上面的那个错误。

以下是个人猜测出错的原因:

继续阅读语言陷阱:armcc诡异的Error: L6218E