Linux移植遇到问题记录

it2024-10-13  39

报错: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编译会报错

类中声明函数 头文件 void A::Refresh();

window允许

class A: { public: void A::Refresh(); }

Linux编译不允许 只能

class A: { public: void Refresh(); }
最新回复(0)