在编译ORB_SLAM2_SSD_Semantic过程中遇到的问题,这个该怎么解决呢,又运行过这个的吗?
declare class does not name a type, 大概率是头文件出了问题
出现这个编译错误主要有四个可能原因,现总结如下:
1.引用的类命名空间未包含
2.引用的类头文件未包含
3.包含了头文件,或者已经前置声明了,则说明所引用的类名写错。
4.循环引用头文件
前置声明要素:
1.前置声明需要注意以上提到的四点
2.尽可能的采用前置声明(做到只有包含继承类的头文件)
3.使用前置声明时,cpp文件中include 头文件次序必须先 包含前置声明的类定义头文件,再包含本类头文件。
否则会出现如下编译错误.
(expected constructor, destructor, or type conversion before ‘typedef')
编译器应该已经找到并识别了MergeSG.h中的176:69和176:73两个函数入口,只是不能正确匹配。
该问题可能与硬件配置有关,slam2_ssd,可能是扩展内存插槽,不是主内存插槽,该软件可能需要使用额外指定的内存卡,编译时因为没有找到该内存设备而导致失败。
头文件出了问题