zoukankan      html  css  js  c++  java
  • 在fedora7下安装qt-x11-2.3.2和qt-embedded-2.3.2时出现的错误与修改方法

    安装方法:把qt-x11-2.3.2.tar.gz放到/home下
    sudo tar vxzf qt-x11-2.3.2.tar.gz
    cd qt-x11-2.3.2
    export QTDIR =/home/qt-x11-2.3.2
    ./configure -help
    sudo ./configure -platform linux-g++ -thread -system-jpeg -gif -no-xft
    sudo make

    qt/embedded安装
    不是交叉编译时: sudo ./configure -xplatform linux-x86-g++ -thread -qvfb

    典型错误如下:
    xml/qxml.cpp:2502:  instantiated from here
    /usr/local/arm/QT/qt-2.3.7/include/qvaluestack.h:57: error: cannot convert ‘QValueListIterator<QString>’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)’
    make[2]: *** [xml/qxml.o] 错误 1
    make[2]: Leaving directory `/usr/local/arm/QT/qt-2.3.2/src'
    make[1]: *** [sub-src] 错误 2
    make[1]: Leaving directory `/usr/local/arm/QT/qt-2.3.2'
    make: *** [init] 错误 2

    这个错误是说,在文件qvaluestack.h的57行出错。改正方法是修改文件qt-2.3.7/src/tools/qvaluestack.h的 第57行,将remove( this->fromLast() );改为this->remove( this->fromLast () );

    修改时可能要更改文件权限,变成可写的,虽然在错误信息里qvaluestack.h文件是在qt-2.3.7/include/下,但要修改的文件要在qt-2.3.7/src/下找,不在kernel里就在tools里。

    还有一个典型错误是说,
    在文件qwindowsystem_qws.h中缺少一个叫做QWSInputMethod的类,修改方法为修改文件qt-2.3.7/src/kernel/qwindowsystem_qws.h,增加一个类class QWSInputMethod;

    我最头疼的一个错误
    /root/2410/qt-2.3.7/include/qsortedlist.h: In destructor `QSortedList<type>::~QSortedList()':
    /root/2410/qt-2.3.7/include/qsortedlist.h:51: error: there are no arguments to `clear' that depend on a template parameter, so a declaration of `clear' must be available
    /root/2410/qt-2.3.7/include/qsortedlist.h:51: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
    make[2]: *** [allmoc.o] 错误 1
    make[2]: Leaving directory `/root/2410/qt-2.3.7/src'
    make[1]: *** [sub-src] 错误 2
    make[1]: Leaving directory `/root/2410/qt-2.3.7'
    make: *** [init] 错误 2
    这个错误是说,在文件qsortedlist.h的第51行,clear没有声明,不可用,原代码在qt-2.3.7/src/tools/下,51行是 ~QSortedList() { clear(); },我猜把它改成~QSortedList() { },或者 ~QSortedList() {int clear(); },都可以make通过。但不知道有没有隐患。

    kernel/qgfxraster_qws.cpp:5631:   instantiated from here
    kernel/qgfxraster_qws.cpp:3635: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:3708: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:3831: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:3849: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:4119: 警告:‘myptr’ 上的运算结果可能是未定义的
    make[3]: *** [kernel/qgfxraster_qws.o] 错误 1
    make[3]: Leaving directory `/home/qte-2.3.2/src'
    make[2]: *** [src-mt] 错误 2
    make[2]: Leaving directory `/home/qte-2.3.2'
    make[1]: *** [src-mt] 错误 2
    make[1]: Leaving directory `/home/qte-2.3.2'
    make: *** [init] 错误 2

    把*myptr++ = (*myptr & 0x0f)改为int *myptr++ = (*myptr & 0x0f)

    ernel/qgfxraster_qws.cpp:5631:   instantiated from here
    kernel/qgfxraster_qws.cpp:3635: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:3708: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:3831: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:3849: 警告:提领类型双关的指针将破坏强重叠规则
    kernel/qgfxraster_qws.cpp:4118: 警告:未使用的变量 ‘rgb’
    make[3]: *** [kernel/qgfxraster_qws.o] 错误 1
    make[3]: Leaving directory `/home/qte-2.3.2/src'
    make[2]: *** [src-mt] 错误 2
    make[2]: Leaving directory `/home/qte-2.3.2'
    make[1]: *** [src-mt] 错误 2
    make[1]: Leaving directory `/home/qte-2.3.2'
    make: *** [init] 错误 2

    注释了rgb。

  • 相关阅读:
    javascript学习一
    对软件工程课程的认识
    人月神话读后感
    项目开发总结报告(GB8567——88)
    MFC双缓冲绘图
    QT连接MySQL
    [QT学习]拷贝文件
    Arduino入门笔记【1】
    《人月神话》读后感以及软件工程总结
    十天冲刺任务(第二次冲刺)
  • 原文地址:https://www.cnblogs.com/dolphi/p/2636474.html
Copyright © 2011-2022 走看看