C++ --- 编译时,标准库报错- 类似:expected unqualified-id before ‘.’ token//(struct)
场景:编译一个项目A,A从开源库中提取了很多代码。
问题:Windows下使用Visual Studio编译项目时,正常通过。但是使用MingW编译时提示 错误 : expected unqualified-id before ‘.’ token//(struct),然后这个错误是指向的stl标准库。
原因:当出现此类错误时,是自己项目中的某些变量或者宏与标准库中的重名了。项目A中为了偷懒,少些命名空间,就直接在头文件中using namespace xxx;。导致了重名问题。最后取消直接using namespace,手动在变量前加上命名空间。
visual studio能编译过,但是mingw不能编译通过是因为两边使用的库不同。
类似问题:
Windef.h中的min/max与std::min/std::max重名。
参考:https://blog.csdn.net/qq_17291647/article/details/104230809