QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6033|回复: 23

“Eva 编译问题”集中贴

[复制链接]
发表于 2005-1-7 11:35:24 | 显示全部楼层 |阅读模式
注意到大家已经开始着手熟悉 Eva 框架,遇到一些编译错误等问题,因此,特开次贴,请大家集中提问,这样可以减少重复劳动。谢谢!

在提问时,请给出如下要素:
#1. 操作系统
#2. qt  版本号;
#3. 编译对象;
#4. 错误提示信息。

问题就是知识,我们一同进步。^_^
 楼主| 发表于 2005-1-7 11:44:52 | 显示全部楼层
[quote:5e1f055959="sdemon915"]我用的是红帽企业版3 , configure的时候没有问题:Good - your configure finished. Start make now,make的时候出错:
Making all in src
make[2]: Entering directory `/home/builder/charley/app/evatest/src'
/usr/lib/qt-3.1/bin/uic -L /usr/lib/kde3/plugins/designer -nounload -o evatestui.h ./evatestui.ui
uic: File generated with too recent version of Qt Designer (3.3 vs. 3.1.2)
make[2]: *** [evatestui.h] Error 1
make[2]: Leaving directory `/home/builder/charley/app/evatest/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/builder/charley/app/evatest'
make: *** [all] Error 2[/quote]

--------------------
bamfox 转
回复

使用道具 举报

发表于 2005-1-7 12:21:14 | 显示全部楼层
[quote:1a44f5672d="sdemon915"]我用的是红帽企业版3 , configure的时候没有问题:Good - your configure finished. Start make now,make的时候出错:
Making all in src
make[2]: Entering directory `/home/builder/charley/app/evatest/src'
/usr/lib/qt-3.1/bin/uic -L /usr/lib/kde3/plugins/designer -nounload -o evatestui.h ./evatestui.ui
uic: File generated with too recent version of Qt Designer (3.3 vs. 3.1.2)
make[2]: *** [evatestui.h] Error 1
make[2]: Leaving directory `/home/builder/charley/app/evatest/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/builder/charley/app/evatest'
make: *** [all] Error 2[/quote]

你的Qt版本低了,我的Qt是 3.3的,
你可以暂时这么解决。

用Kwrite打开/evatestui.ui这个文件, 记住一定要把编码设置成UTF8的
然后把第一行
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">

改成
<!DOCTYPE UI><UI version="3.1" stdsetdef="1">

然后存盘, 记着一定是要utf8编码格式。
回复

使用道具 举报

发表于 2005-1-7 12:38:49 | 显示全部楼层
eva功成名就的那一天,bamfox功不可没
----------------------------------------------------------
谢谢,花花这么抬举我哇。不过,这里暂时不要灌水呀。
by bamfox
回复

使用道具 举报

发表于 2005-1-7 12:40:08 | 显示全部楼层
一个重要的更正, 是我的错误所致, 可能在有些系统上不能编译,会有如下编译错误
evapacket.cpp: In member function `int OutPacket::putHead(unsigned char*)':
evapacket.cpp:33: error: `int Packet::qqNum' is private
evapacket.cpp:238: error: within this context


如果出现这个问题,请大家做如下更改:
把 evapacket.cpp 文件的 238 行:
int id = htonl(qqNum);

改为
int id = htonl(getQQ());

这个错误的原因是
int qqNum 是 Packet 类的私有变量
而我在它的继承类OutPacket里调用了这个变量,只应该是不可以的,但是不知道
为什么我的编译器没有报错。

而本来我是把qqNum 放在 protected: 里的, 继承类是可以访问的, 后来改掉了。


多谢Jacky Gu <[email protected]> 给我的反馈
给大家带来的不便望大家包含
回复

使用道具 举报

发表于 2005-1-7 12:52:29 | 显示全部楼层
[quote:928aa1f1d7="caihua"]eva功成名就的那一天,bamfox功不可没[/quote]

我看我们应该考虑给bamfox设计个奖章什么的 :D
-------------------------------------------------
狐狸大勋章一枚就行了。^_^ 暂时不要灌水呀。
by bamfox
回复

使用道具 举报

发表于 2005-1-7 13:18:21 | 显示全部楼层
把evatestui.ui改了 但还是有问题:
evasocket.cpp: In member function `void EvaHttpProxy::parseData(int)':
evasocket.cpp:265: no matching function for call to `QString::startsWith(const
   char[8], bool)'
/usr/lib/qt-3.1/include/qstring.h:640: candidates are: bool
   QString::startsWith(const QString&) const

PS:我想问下 从哪里可以下载到新的qt和qtdesigner
回复

使用道具 举报

发表于 2005-1-7 13:31:30 | 显示全部楼层
你的的确是版本低了。

你可以暂时这么解决
找到这一行,
evasocket.cpp:265   :         if(replyBuffer.startsWith("HTTP/1.",false)){

改成:
        if(replyBuffer.startsWith("HTTP/1.")){

试试看, 不过建议升级一下qt吧
到这里去找
http://www.trolltech.com/download/qt/x11.html

不过,升级Qt,你还是先在
http://www.trolltech.com 上,找找升级文档,看完了再动手,有点麻烦。

你去redhat或者其他地方看看,有没有给红帽企业版3做好的rpm升级包,直接下了,装上会非常省事
回复

使用道具 举报

发表于 2005-1-7 13:54:33 | 显示全部楼层
在本机用rpm -qa|grep qt搜索的结果是:
qt-designer-3.1.2-13
qt-MySQL-3.1.2-13
qt-devel-3.1.2-13
qt-3.1.2-13
从网上下的qt包是qt-x11-free-3.3.3.tar.gz,安装这个包是只升级qt呢还是qt-devel,qt-MySQL,qt-designer都一块升级了
PSx-devel包是什么? 经常在网上能找到xx-devel的rpm包
回复

使用道具 举报

发表于 2005-1-7 14:06:36 | 显示全部楼层
qt-x11-free-3.3.3.tar.gz 是qt QPL 版权发布的东西,和GPL很像,
是全部免费版本的源代码包, 包括 qt库,designer, assistant, qt 文档,
examples, 等等

至于你看到的那些包,应该是把qt free版本的源代码分开了打的包吧。(我猜的)

x-devel包 是开发者使用包。如果你是从网上直接下载rpm,这个一定要装。
回复

使用道具 举报

发表于 2005-1-7 15:24:08 | 显示全部楼层
那几个估计是把qt free里的东西分别打的几个rpm包吧

开发者使用包 -devel 到底是做什么用的 yunfan兄可不可以再详细讲下 不太懂哈  
回复

使用道具 举报

发表于 2005-1-7 17:14:40 | 显示全部楼层
[quote:b0214949fb="sdemon915"]那几个估计是把qt free里的东西分别打的几个rpm包吧

开发者使用包 -devel 到底是做什么用的 yunfan兄可不可以再详细讲下 不太懂哈  [/quote]

我也不知道,到底你那个devel是干什么的, 我的看了rpm里都有些什么文件才敢说

不过一般来说,devel包里放着开发才用的上的一些库和开发用的头文件。因为一般用户是不需要这些的。 运行编译好的程序是不需要这些。

另:我的机器上怎么没有devel这个包,而且rpmfind上也没查到这个包。
回复

使用道具 举报

发表于 2005-1-7 20:14:27 | 显示全部楼层
[quote:e016209f0f="yunfan"]一个重要的更正, 是我的错误所致, 可能在有些系统上不能编译,会有如下编译错误
evapacket.cpp: In member function `int OutPacket::putHead(unsigned char*)':
evapacket.cpp:33: error: `int Packet::qqNum' is private
evapacket.cpp:238: error: within this context


如果出现这个问题,请大家做如下更改:
把 evapacket.cpp 文件的 238 行:
int id = htonl(qqNum);

改为
int id = htonl(getQQ());

这个错误的原因是
int qqNum 是 Packet 类的私有变量
而我在它的继承类OutPacket里调用了这个变量,只应该是不可以的,但是不知道
为什么我的编译器没有报错。

而本来我是把qqNum 放在 protected: 里的, 继承类是可以访问的, 后来改掉了。


多谢Jacky Gu <[email protected]> 给我的反馈
给大家带来的不便望大家包含[/quote]

Jacky Gu 就是偶啦, 嘻嘻~~
回复

使用道具 举报

 楼主| 发表于 2005-1-7 20:19:57 | 显示全部楼层
BoyFriend,能否带领俺们这些测试的兄弟,为 Eva 把关呢?
回复

使用道具 举报

发表于 2005-1-7 20:59:07 | 显示全部楼层
偶倒,俺都是个菜鸟呢。。。由于本人有一个嗜好,就是总是把rpm更新到最新。比如KDE啊,xorg啊,还有我的mandrake啊之类的,当然里面就包含了最新版本的qt了,再加上以前有一点点编译kde的经验,才能刚刚应付编译这个东东,现在要我担当如此大任,实在不敢当阿。。。惭愧惭愧。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-22 03:06 , Processed in 0.073535 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表