#随笔小记- 编译tesseract出现“remove_reference”: 不明确的符号错误
在编译tesseract相关程序时,出现下面错误:“错误 C2872 “remove_reference”: 不明确的符号 tesseract-OCR e:\tesseract4.1.0-vs2017-win10\include\tesseract\tesscallback.h 161”转到相关行代码,在网上参考许多帖。
总结:由于using namespace std;里面也定义了remove_reference造成该错误。网上给出解决方法:1.取消使用using namespace std; 在所有用到std的地方添加std::;2.删除有关remove_reference。3.调换using namespace std和引用tesseract里面头文件出现的顺序。
template <class T>
struct remove_reference;
template <typename T>
struct remove_reference {
using type = T;
};
template <typename T>
struct remove_reference<T&> {
using type = T;
};
请教大神之后,得到在有关报错的代码行的remove_reference之前添加:: 发现错误解决。
在网上查找::相关作用:
双冒号 :: 操作符被称为域操作符(scope operator),含义和用法如下:
-
在类外部声明成员函数。void Point::Area(){};
-
调用全局函数;表示引用成员函数变量及作