报错:invalid use of incomplete type ‘class XXX’
问题描述:定义模板类,使用前向声明引入class XXX,类定义中使用了指针,即XXX spXXX,以上OK。但模板在头文件中实现,实现过程中调用spXXX->Refresh()。
上述代码出了问题:在Window VS中可以执行编译,但移植到Linux时会报上述错误
解决:引入class XXX的头文件。
报错:changes meaning of ‘XXX’ from ‘enum A::B::XXX’
问题描述:使用类的同名的变量 GraphicGroup GraphicGroup;
上述声明在window vs中可以编译通过,但在Linux下会报错。
解决: GraphicGroup gGraphicGroup
导出
window #define XXX_Export __declspec(dllexport)
linux #define XXX_Export __attribute__((visibility(“default”)))
#define中含有 换行符和注释符
#define aaa \
std::cout<<“123”;\
//int a=1;\
std::cout<<“123”;
上述代码Linux可以编译,window编译会报错