网上给出的解决方案是:
------解决方案--------------------------------------------------------
使用gmake编译前需要修改/usr/include/linux/futex.h:- 在第4行前插入下面内容:#include
- 替换第108行至113行之间的“u32”为“__u32”
本人验证:把文件里所有的“u32”替换为“__u32”,并非是在这些行。同时本人查看了能成功安装qt的一些机器对应的文件,发现没有字符串“u32”,也没有#include 。可见__u32的定义
网上查找到的类似的错误是:- shared -o .obj/release-shared/qmutex_unix.o thread/qmutex_unix.cpp
- /usr/include/linux/futex.h:96: 错误:‘u32’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:96: 错误:‘uaddr’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:96: 错误:expected primary-expression before ‘int’
- /usr/include/linux/futex.h:96: 错误:‘u32’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:96: 错误:expected primary-expression before ‘unsigned’
- /usr/include/linux/futex.h:97: 错误:‘u32’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:97: 错误:‘uaddr2’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:97: 错误:‘u32’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:97: 错误:‘u32’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:97: 错误:initializer 表达式列表被看作复合表达式
- /usr/include/linux/futex.h:100: 错误:‘u32’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:100: 错误:‘uaddr’ 在此作用域中尚未声明
- /usr/include/linux/futex.h:100: 错误:expected primary[/size][/size][/size]
其实,在安装过程中,我一直以为是版本的问题,比如要显示的指定x86_64。个人对linux知之甚少,所以很费力,阅读readme也只找到- ..\qt\qt-everywhere-opensource-src-4.8.4\mkspecs\linux-g++-64
阅读(1703) | 评论(0) | 转发(0) |