日期:2014-05-16  浏览次数:20582 次

RedHat 中安装最新版qt-everywhere-opensource-src-4.8.1.tar.gz出问题
[size=24px][size=24px][size=18px]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]

以上为出错信息!!! 求大侠指导
我的RedHat 是rhel-5.2-server-i386版本的

------解决方案--------------------
使用gmake编译前需要修改/usr/include/linux/futex.h:
(1)在第4行前插入下面内容:
#include <linux/types.h>
(2)替换第108行至113行之间的“u32”为“__u32”