• 11041阅读
  • 21回复

用Qt-embedded自带的qconfig-xxx.h编译出错 [复制链接]

上一主题 下一主题
离线wato
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-16
有人试过用qconfig裁减QTE编译成功的吗

我用QT自带的qconfig-medium.h来编译也报错,错误提示大概是裁了不该裁的,但这个配置文件是自带的阿  我没有DIY过

./configure -qconfig medium

make时错误提示如下:
access/qhttpnetworkheader.cpp:47: 错误: ‘QHttpNetworkHeaderPrivate’未声明
access/qhttpnetworkheader.cpp:47: 错误: ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp: In function ‘int QHttpNetworkHeaderPrivate(const QUrl&)’:
access/qhttpnetworkheader.cpp:48: 错误: 只有构造函数才能有基类初始值设定
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:52: 错误: ‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:52: 错误: expected ‘,’ or ‘...’ before ‘&’ token
access/qhttpnetworkheader.cpp:52: 错误: ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp:52: 错误: ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp: In function ‘int QHttpNetworkHeaderPrivate(int)’:
access/qhttpnetworkheader.cpp:53: 错误: 只有构造函数才能有基类初始值设定
access/qhttpnetworkheader.cpp:53: 错误: ‘other’在此作用域中尚未声明
access/qhttpnetworkheader.cpp:55: 错误: ‘url’在此作用域中尚未声明
access/qhttpnetworkheader.cpp:56: 错误: ‘fields’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:52: 警告: 未使用的参数‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp:59: 错误: ‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:59: 错误: non-成员函数‘qint64 contentLength()’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp: In function ‘qint64 contentLength()’:
access/qhttpnetworkheader.cpp:62: 错误: ‘headerField’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:69: 错误: ‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp: In function ‘void setContentLength(qint64)’:
access/qhttpnetworkheader.cpp:71: 错误: ‘setHeaderField’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:74: 错误: ‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:74: 错误: non-成员函数‘QByteArray headerField(const QByteArray&, const QByteArray&)’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp: In function ‘QByteArray headerField(const QByteArray&, const QByteArray&)’:
access/qhttpnetworkheader.cpp:76: 错误: ‘headerFieldValues’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:91: 错误: ‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:91: 错误: non-成员函数‘QList<QByteArray> headerFieldValues(const QByteArray&)’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp: In function ‘QList<QByteArray> headerFieldValues(const QByteArray&)’:
access/qhttpnetworkheader.cpp:95: 错误: ‘fields’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:104: 错误: ‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp: In function ‘void setHeaderField(const QByteArray&, const QByteArray&)’:
access/qhttpnetworkheader.cpp:107: 错误: ‘fields’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:117: 错误: ‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:117: 错误: expected ‘,’ or ‘...’ before ‘&’ token
access/qhttpnetworkheader.cpp:117: 错误: ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp:117: 错误: non-成员函数‘bool operator==(int)’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp:117: 错误: ‘bool operator==(int)’的实参必须有类或枚举类型
离线wczt_123
只看该作者 1楼 发表于: 2009-09-17
我也是碰到这问题
我用的
./configure -qconfig small

提示
access/qhttpnetworkheader.cpp:47: 错误:‘QHttpNetworkHeaderPrivate’未声明
access/qhttpnetworkheader.cpp:47: 错误:ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp: In function ‘int QHttpNetworkHeaderPrivate(const QUrl&)’:
access/qhttpnetworkheader.cpp:48: 错误:只有构造函数才能有基类初始值设定
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:52: 错误:‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:52: 错误:expected ‘,’ or ‘...’ before ‘&’ token
access/qhttpnetworkheader.cpp:52: 错误:ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp:52: 错误:ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp: In function ‘int QHttpNetworkHeaderPrivate(int)’:
access/qhttpnetworkheader.cpp:53: 错误:只有构造函数才能有基类初始值设定
access/qhttpnetworkheader.cpp:53: 错误:‘other’在此作用域中尚未声明
access/qhttpnetworkheader.cpp:55: 错误:‘url’在此作用域中尚未声明
access/qhttpnetworkheader.cpp:56: 错误:‘fields’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:52: 警告:未使用的参数‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp:59: 错误:‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:59: 错误:非成员函数‘qint64 contentLength()’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp: In function ‘qint64 contentLength()’:
access/qhttpnetworkheader.cpp:62: 错误:‘headerField’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:69: 错误:‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp: In function ‘void setContentLength(qint64)’:
access/qhttpnetworkheader.cpp:71: 错误:‘setHeaderField’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:74: 错误:‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:74: 错误:非成员函数‘QByteArray headerField(const QByteArray&, const QByteArray&)’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp: In function ‘QByteArray headerField(const QByteArray&, const QByteArray&)’:
access/qhttpnetworkheader.cpp:76: 错误:‘headerFieldValues’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:91: 错误:‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:91: 错误:非成员函数‘QList<QByteArray> headerFieldValues(const QByteArray&)’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp: In function ‘QList<QByteArray> headerFieldValues(const QByteArray&)’:
access/qhttpnetworkheader.cpp:95: 错误:‘fields’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:104: 错误:‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp: In function ‘void setHeaderField(const QByteArray&, const QByteArray&)’:
access/qhttpnetworkheader.cpp:107: 错误:‘fields’在此作用域中尚未声明
access/qhttpnetworkheader.cpp: At global scope:
access/qhttpnetworkheader.cpp:117: 错误:‘QHttpNetworkHeaderPrivate’is not a class or namespace
access/qhttpnetworkheader.cpp:117: 错误:expected ‘,’ or ‘...’ before ‘&’ token
access/qhttpnetworkheader.cpp:117: 错误:ISO C++ 不允许声明无类型的‘QHttpNetworkHeaderPrivate’
access/qhttpnetworkheader.cpp:117: 错误:非成员函数‘bool operator==(int)’不能拥有 cv 限定符
access/qhttpnetworkheader.cpp:117: 错误:‘bool operator==(int)’的实参必须有类或枚举类型
make[1]: *** [.obj/release-shared-emb-x86/qhttpnetworkheader.o] 错误 1
make[1]: Leaving directory `/root/qt-embedded-linux-opensource-src-4.5.2/src/network'
make: *** [sub-network-make_default-ordered] 错误 2
有没有哪个兄弟知道怎么解决...谢了
离线qiang1985
只看该作者 2楼 发表于: 2009-09-17
顶!!!!
离线wczt_123
只看该作者 3楼 发表于: 2009-09-18
期待大牛出现 ...
离线wczt_123
只看该作者 4楼 发表于: 2009-09-19
....................
等......
离线rqzrqh

只看该作者 5楼 发表于: 2009-09-19
这两个配置参数没见过
离线mecland
只看该作者 6楼 发表于: 2009-09-20
我也曾被这个错误困扰过, 后来换了个系统编译通过. 你自己试试用qconfig工具把网络相关模块全部取消试试, 系统预置的几个配置文件没有多大的用处, 不是功能很少就是库太庞大, 建议还是自己定制吧
离线rqzrqh

只看该作者 7楼 发表于: 2009-09-20
以下是我用过的一个带触摸屏的QT4.5.1的配置
export PATH=/opt/rmi-linux/hmp10/bin:$PATH    //交叉编译器路径  
export QMAKESPEC=/home/user/Desktop/qt-embedded-linux-opensource-src-4.5.1/mkspecs/qws/linux-mips-g++   //用的是QT/E的配置,如果PC上已经有了QT的库,那么使用的时候必须是用QT/E的QMAKESPEC

./configure -prefix /opt/qt-4.5.1 -release -fast -no-largefile -stl -system-sqlite -no-qt3support -no-xmlpatterns -no-phonon -no-svg  -no-webkit -no-phonon-backend -no-scripttools -qt-zlib -no-gif  -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-openssl -nomake  tools -nomake examples -nomake demos -nomake docs -nomake translations -no-rpath -continue -no-nis -no-cups -no-pch -no-dbus -platform qws/linux-x86-g++ -xplatform qws/linux-mips-g++ -embedded mips -qt-freetype -no-opengl -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen  -no-kbd-tty  -no-kbd-sl5000 -no-kbd-yopy -no-kbd-vr41xx -no-kbd-qvfb -qt-mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib
离线wato
只看该作者 8楼 发表于: 2009-09-20
引用第6楼mecland于2009-09-20 00:08发表的  :
我也曾被这个错误困扰过, 后来换了个系统编译通过. 你自己试试用qconfig工具把网络相关模块全部取消试试, 系统预置的几个配置文件没有多大的用处, 不是功能很少就是库太庞大, 建议还是自己定制吧


谢谢你的回复  

我就是自己配置失败了很多次之后才试试Qt自带的,想不到自带的也失败了

现在我的QtE的lib目录大小是19M

如果能用这个工具能配置成功肯定还能小很多的...
离线wato
只看该作者 9楼 发表于: 2009-09-20
引用第7楼rqzrqh于2009-09-20 10:05发表的  :
以下是我用过的一个带触摸屏的QT4.5.1的配置
export PATH=/opt/rmi-linux/hmp10/bin:$PATH    //交叉编译器路径  
export QMAKESPEC=/home/user/Desktop/qt-embedded-linux-opensource-src-4.5.1/mkspecs/qws/linux-mips-g++   //用的是QT/E的配置,如果PC上已经有了QT的库,那么使用的时候必须是用QT/E的QMAKESPEC
./configure -prefix /opt/qt-4.5.1 -release -fast -no-largefile -stl -system-sqlite -no-qt3support -no-xmlpatterns -no-phonon -no-svg  -no-webkit -no-phonon-backend -no-scripttools -qt-zlib -no-gif  -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-openssl -nomake  tools -nomake examples -nomake demos -nomake docs -nomake translations -no-rpath -continue -no-nis -no-cups -no-pch -no-dbus -platform qws/linux-x86-g++ -xplatform qws/linux-mips-g++ -embedded mips -qt-freetype -no-opengl -no-gfx-qvfb -no-gfx-vnc -no-gfx-multiscreen  -no-kbd-tty  -no-kbd-sl5000 -no-kbd-yopy -no-kbd-vr41xx -no-kbd-qvfb -qt-mouse-tslib -I/opt/tslib/include -L/opt/tslib/lib



谢谢!

我可以参考下
离线mecland
只看该作者 10楼 发表于: 2009-09-20
用qconfig工具的话有相关依赖提示的,如果自己修改宏的话依赖关系要解决哦,不然的话会通不过的。可以检查一下宿主机的环境,我使用ARCHLINUX (2.6.25)内核编译没有通过,后来换成openSUSE 10.2 (2.6.18)编译通过,可以参考一下
离线wczt_123
只看该作者 11楼 发表于: 2009-09-24
无奈...
怎么能把lib裁小点..
关键是QtGui.so
离线wczt_123
只看该作者 12楼 发表于: 2009-09-24
无奈...
怎么能把lib裁小点..
关键是怎么把QtGui.so裁小...   
离线wato
只看该作者 13楼 发表于: 2009-09-24
我记得shiroki(没拼错吧)版主有篇文章就是介绍这个工具的阿

如果版主看见的话进来说说经验吧  谢谢~
离线wczt_123
只看该作者 14楼 发表于: 2009-09-27
................................................
离线shiroki

只看该作者 15楼 发表于: 2009-09-28
实际上qt本身已经编译成功了,只是有些例子依赖的qt模块被裁减掉导致例子编译不过,不用理会它。
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线mecland
只看该作者 16楼 发表于: 2009-09-28
如果追求速度和大小的话,建议楼主换QT2或QT3吧。QT4对速度要求比较高,我就是因为这个原因无奈从QT4换到QT3的
离线wato
只看该作者 17楼 发表于: 2009-09-28
引用第15楼shiroki于2009-09-28 13:09发表的  :
实际上qt本身已经编译成功了,只是有些例子依赖的qt模块被裁减掉导致例子编译不过,不用理会它。


谢谢版主

但是,报错后编译就停止了,而有些库并没有编译好啊
离线wato
只看该作者 18楼 发表于: 2009-09-28
引用第16楼mecland于2009-09-28 13:11发表的  :
如果追求速度和大小的话,建议楼主换QT2或QT3吧。QT4对速度要求比较高,我就是因为这个原因无奈从QT4换到QT3的



呵呵  我以前没接触过QT,一开始就从QT4开始学,应该有很多差异吧   而且老板也倾向用最新的
离线wczt_123
只看该作者 19楼 发表于: 2009-10-12
沉了.......
离线jwqacqy
只看该作者 20楼 发表于: 2010-03-24
怎样把QTE的库裁剪到20M一下啊?  大家讨论一下方案啊
离线numen

只看该作者 21楼 发表于: 2010-04-08
自己定义吧,或者使用qconfig工具
如果不要webkit的话,最小肯定可以做到10m以下,包括network,core,gui,dbus,xml
欢迎访问我的blog:
http://www.cnblogs.com/baizx
快速回复
限100 字节
 
上一个 下一个