【问题】
用arm-xscale-linux-gnueabi交叉编译代码,结果出错:.././Src/xxx.c:707:32: error: lvalue required as unary ‘&’ operand
【解决过程】
1.直接去看代码:
706和707行的代码是:xmlrpc_read_string(&env, pResult,
&(CONSTCHAR *) pMoteStateResponse);
所以,先去找找xmlrpc_read_string,参考:
其api是:void
xmlrpc_read_string(xmlrpc_env * const envP,
const xmlrpc_value * const valueP,
const char ** const stringValueP);
然后手动去改代码为:// xmlrpc_read_string(&env, pResult,
// &(CONSTCHAR *) pMoteStateResponse);
xmlrpc_read_string(&env, pResult,
&((CONSTCHAR *)pMoteStateResponse));
编译看看,是否有效,结果问题依旧。
2.参考了:
稍微更清楚这个lvalue=左值=左边的值了
注意到此处,已经定义了该变量为CONSTCHAR了:CONSTCHAR *pMoteStateResponse = NULL;
...
// xmlrpc_