红联Linux门户
Linux帮助

linux编译正常,arm-linux编译时出错?(已解决)

发布时间:2009-07-23 19:28:52来源:红联作者:hys97
[i=s] 本帖最后由 hys97 于 2009-7-24 09:14 编辑 [/i]

请教各位: 我写了一个程序,在redhat9.0环境下gcc编译通过,程序能正常运行。但是准备移植到arm目标板上,使用arm-linux-gcc-3.4.1编译时,程序编译出错!

出错的代码如下:(大致的意思是计算结构体中一个成员相对于首地址的位置偏移)
for ( int i=0; i{
offset = offsetof(APP_DATA, dataInfo[i]);
//其他处理
}
编译错误信息:
ParaShmOper.cpp: In member function `int CParaShmOper::putShmPara(int, char*)':
ParaShmOper.cpp:266: error: `i' cannot appear in a constant-expression
另外,我发现,其他地方有使用offsetof(APP_DATA, dataInfo[0])计算偏移,但是没有报错。
那位兄弟知道原因,请指导一下吧!谢谢!

解决办法:使用一个静态数组初始化,其中offsetof带入的参数为0,1,2....
文章评论

共有 0 条评论