【问题】

用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_read_string(&env, pResult,

// &(CONSTCHAR *) pMoteStateResponse);

xmlrpc_read_string(&env, pResult,

&((CONSTCHAR *)pMoteStateResponse));

所以,去掉CONSTCHAR *,试试:// xmlrpc_read_string(&env, pResult,

// &(CONSTCHAR *) pMoteStateResponse);

xmlrpc_read_string(&env, pResult,

&pMoteStateResponse);

然后的确,消除了此问题了。

3.另外,看到:

所以,怀疑是:

gcc的bug,或者语法的兼容性问题,

即或许某个版本的gcc,是支持:CONSTCHAR *pMoteStateResponse = NULL;

...

&(CONSTCHAR *) pMoteStateResponse);

的写法的。

而我当前的,交叉编译器的版本是:CLi@PC-CLI-1 ~/develop/wihart_gateway_6_0/WBM/Build

$ arm-xscale-linux-gnueabi-gcc -v

Using built-in specs.

COLLECT_GCC=arm-xscale-linux-gnueabi-gcc

COLLECT_LTO_WRAPPER=/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/libexec/gcc/arm-xscale-linux-gnueabi/4.6.0/lto-wrapper.exe

Target: arm-xscale-linux-gnueabi

Configured with: /home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/src/gcc-4.6.0/configure --build=i686-build_pc-cygwin --host=i686-build_pc-cygwin --target=arm-xscale-linux-gnueabi --prefix=/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi --with-sysroot=/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/arm-xscale-linux-gnueabi/sysroot --enable-languages=c,c++ --with-arch=armv5te --with-cpu=xscale --with-tune=xscale --with-float=softfp --with-pkgversion='crosstool-NG 1.18.0' --disable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --with-gmp=/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/buildtools --with-mpfr=/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/buildtools --with-mpc=/home/CLi/develop/crosstool-ng/crosstool-ng-1.18.0_build/.build/arm-xscale-linux-gnueabi/buildtools --with-ppl=no --with-cloog=no --with-libelf=no --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-target-optspace --disable-nls --disable-multilib --with-local-prefix=/home/CLi/develop/crosstool-ng/x-tools/arm-xscale-linux-gnueabi/arm-xscale-linux-gnueabi/sysroot --enable-c99 --enable-long-long

Thread model: posix

gcc version 4.6.0 (crosstool-NG 1.18.0)

即4.6.0的gcc。而上面的bug提交,是4.7.0的gcc(中的g++)就有的。

不知道是否是:

升级成更高版本的(此处的交叉编译器的)gcc,就可以解决此问题?

但是,觉得也很奇怪的是,当前的代码,好像是:

别人之前用,更低版本的(交叉编译器)gcc:

gcc-3.4.5-glibc-2.3.6

就可以正常编译的。

所以,应该不是这方面的问题才对。

4.这里也是用4.7的gcc出了类似问题:

但是不知道如何解决。

5.参考:

去试试,手动用g++去编译试试,结果问题依旧。

6.去试试,会不会是因为多了个空格:// xmlrpc_read_string(&env, pResult,

// &(CONSTCHAR *) pMoteStateResponse);

xmlrpc_read_string(&env, pResult,

&(CONSTCHAR *) pMoteStateResponse);

改为:// xmlrpc_read_string(&env, pResult,

// &(CONSTCHAR *) pMoteStateResponse);

xmlrpc_read_string(&env, pResult,

&(CONSTCHAR *)pMoteStateResponse);

试试,结果还是出错。

【总结】

此处,只能是,把:CONSTCHAR *pMoteStateResponse = NULL;

...

xmlrpc_read_string(&env, pResult,

&(CONSTCHAR *) pMoteStateResponse);

改为:CONSTCHAR *pMoteStateResponse = NULL;

...

xmlrpc_read_string(&env, pResult,

&pMoteStateResponse);

而暂时解决此问题。

linux代码没左值,【已解决】用arm-xscale-linux-gnueabi编译代码出错:error: lvalue required as unary ‘’ operand...相关推荐

  1. linux c之gcc编译出现error:lvalue required as unary ‘‘ operand解决办法

    1.问题 今天搞epoll实现io复用的时候gcc编译出现这个错误lvalue required as unary '&' operand,如下图 2.解决办法 accept函数参数如下 in ...

  2. Qt: error: lvalue required as unary ‘‘ operand错误解决

    在写代码时,想对函数进行取值操作,就用了"&"符号进行取值操作,结果报了一个"Qt: error: lvalue required as unary '& ...

  3. CUDA out of memory.(已解决)+Windows和Linux查看占用显存的程序

    参考链接:1.CUDA out of memory.(已解决)(有用有用) 2.Linux下查看CPU.内存占用率 Ubuntu下查看cuda占用情况&清除gpu占用&跑深度学习报错R ...

  4. linux ftp 没反应,【已回应】FTP无法使用怎么办

    本帖最后由 Ethan1112 于 2019-1-4 11:49 编辑 刚刚又不知道为什么能链接上了 ,然后把文件下下来后修改再上传的时候发现又不行了 提交的时候说我有不良信息?不给提交?what?改 ...

  5. 已解决At least Windows 8.1 or Windows Server 2012 are required to install Python 3.9.4(64-bit)

    已解决(window7安装Python失败)One or more issues caused the setup to fail.Please fix the issues and then ret ...

  6. 表达式必须是可修改的左值怎么解决_如何解决代码腐败的味道

    一. Duplicated Code(重复代码) 如果你在一个以上的地点看到相同的程序结构,设法将他们合而为一,程序会变得更好. 同一个类的两个函数含有相同的表达式,采用Extract Method( ...

  7. linux中运行c找不到conio.h,Linux 下没有conio.h 已解决(示例代码)

    原文:http://blog.sina.com.cn/s/blog_6a95e00b0100zqvf.html #include //#include void main(){ char ch; fo ...

  8. 【已解决】CentOS7等linux系统时区时间不对显示误差8小时

    文章目录 问题 解决 处理时区问题 date查看时间.时区 timedatectl查看时间.时区 查看localtime 设置时区 处理时间问题 问题 中国使用的是东八区上海时间,而linux服务器, ...

  9. 华硕台式机安装linux进不去系统,[已解决]求助,无法进入系统

    之前一直用arch系统盘,Windows系统盘是在另一台电脑上的,我另外一台电脑昨天摔了,我还以为是硬盘坏了,把这块windows硬盘换到这台华硕主板的电脑,发现硬盘没坏.我于是把windows硬盘从 ...

最新文章

  1. 【FPGA】单端口RAM的设计(异步读、异步写)
  2. 总编下午茶:挑战者心态能否帮助微软重回云计算巅峰?
  3. 聊一聊Java字符串的不可变
  4. (诊断)处理错误fatal error: Python.h: No such file or directory
  5. 提高电脑反应速度_宁美千元价电脑,一体机设计+21英寸屏,办公娱乐选它
  6. 一款java游戏伐木建造_伐木建造模拟器
  7. Spark之 使用SparkSql操作mysql和DataFrame的Scala实现
  8. Hadoop体系结构– YARN,HDFS和MapReduce
  9. python读二进制文件博客园_python二进制读写文件
  10. 【渝粤题库】陕西师范大学800000 地图学原理
  11. react自定义鼠标右键菜单
  12. 自带作弊功能的老虎机--一样会让你输光,呵呵
  13. cortex a8 java_ARM Cortex-
  14. 公安大数据应用之情报分析与关联挖掘
  15. 服务器centos系统诛仙,云服务器搭建诛仙教程
  16. 使用debussy出现的问题
  17. matlab做二元garch m,多元garch模型的matlab程序如何运行?能否举例说明下啊,希望高手指点...
  18. java输入长宽高计算表面积_设计一个C语言程序计算长方体体积和表面积,长宽高通过键盘输入?????...
  19. CentOS6.5X86_64系统定制文档详细版
  20. 【sdx62】QCMAP_CLI手动拨号操作说明

热门文章

  1. Freemarker填充数据到word模板中
  2. 如何修改本地host文件?Request请求头中的host所起的作用
  3. 【程序员分享】学习ios开发需要掌握的学习方法 get√
  4. MVP-----框架
  5. 网络学习:交换机里的常用命令
  6. php mysql去重_mysql 去重
  7. android即时修改ui,安卓教程第一期最终篇(转)systemui.apk最全修改美化
  8. 用计算机做电子贺卡送祝福,五年级上册信息技术《电子贺卡送祝福》教案
  9. 蓝桥杯 算法训练 星际交流
  10. VR全景地图,3D实景地图能用在哪些地方?