Linux移植遇到问题记录
報(bào)錯(cuò):invalid use of incomplete type ‘class XXX’
問(wèn)題描述:定義模板類(lèi),使用前向聲明引入class XXX,類(lèi)定義中使用了指針,即XXX spXXX,以上OK。但模板在頭文件中實(shí)現(xiàn),實(shí)現(xiàn)過(guò)程中調(diào)用spXXX->Refresh()。
上述代碼出了問(wèn)題:在Window VS中可以執(zhí)行編譯,但移植到Linux時(shí)會(huì)報(bào)上述錯(cuò)誤
解決:引入class XXX的頭文件。
報(bào)錯(cuò):changes meaning of ‘XXX’ from ‘enum A::B::XXX’
問(wèn)題描述:使用類(lèi)的同名的變量 GraphicGroup GraphicGroup;
上述聲明在window vs中可以編譯通過(guò),但在Linux下會(huì)報(bào)錯(cuò)。
解決: GraphicGroup gGraphicGroup
導(dǎo)出
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編譯會(huì)報(bào)錯(cuò)
類(lèi)中聲明函數(shù) 頭文件 void A::Refresh();
window允許
class A: { public: void A::Refresh(); }Linux編譯不允許 只能
class A:{public: void Refresh();}總結(jié)
以上是生活随笔為你收集整理的Linux移植遇到问题记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: OpenGL:使用FBO为渲染对象并从G
- 下一篇: Linux下多显卡选择绘制实验记录