bamfox 发表于 2005-1-7 11:35:24

“Eva 编译问题”集中贴

注意到大家已经开始着手熟悉 Eva 框架,遇到一些编译错误等问题,因此,特开次贴,请大家集中提问,这样可以减少重复劳动。谢谢!

在提问时,请给出如下要素:

#1. 操作系统
#2. qt版本号;
#3. 编译对象;
#4. 错误提示信息。

问题就是知识,我们一同进步。^_^

bamfox 发表于 2005-1-7 11:44:52

我用的是红帽企业版3 , configure的时候没有问题:Good - your configure finished. Start make now,make的时候出错:
Making all in src
make: 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: *** Error 1
make: Leaving directory `/home/builder/charley/app/evatest/src'
make: *** Error 1
make: Leaving directory `/home/builder/charley/app/evatest'
make: *** Error 2

--------------------
bamfox 转

yunfan 发表于 2005-1-7 12:21:14

我用的是红帽企业版3 , configure的时候没有问题:Good - your configure finished. Start make now,make的时候出错:
Making all in src
make: 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: *** Error 1
make: Leaving directory `/home/builder/charley/app/evatest/src'
make: *** Error 1
make: Leaving directory `/home/builder/charley/app/evatest'
make: *** Error 2

你的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编码格式。

caihua 发表于 2005-1-7 12:38:49

eva功成名就的那一天,bamfox功不可没
----------------------------------------------------------
谢谢,花花这么抬举我哇。不过,这里暂时不要灌水呀。
by bamfox

yunfan 发表于 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]> 给我的反馈
给大家带来的不便望大家包含

yunfan 发表于 2005-1-7 12:52:29

eva功成名就的那一天,bamfox功不可没

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

sdemon915 发表于 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, bool)'
/usr/lib/qt-3.1/include/qstring.h:640: candidates are: bool
   QString::startsWith(const QString&) const

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

yunfan 发表于 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升级包,直接下了,装上会非常省事

sdemon915 发表于 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都一块升级了
PS:xx-devel包是什么? 经常在网上能找到xx-devel的rpm包

yunfan 发表于 2005-1-7 14:06:36

qt-x11-free-3.3.3.tar.gz 是qt QPL 版权发布的东西,和GPL很像,
是全部免费版本的源代码包, 包括 qt库,designer, assistant, qt 文档,
examples, 等等

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

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

sdemon915 发表于 2005-1-7 15:24:08

那几个估计是把qt free里的东西分别打的几个rpm包吧

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

yunfan 发表于 2005-1-7 17:14:40

那几个估计是把qt free里的东西分别打的几个rpm包吧

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

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

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

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

BoyFriend 发表于 2005-1-7 20:14:27

一个重要的更正, 是我的错误所致, 可能在有些系统上不能编译,会有如下编译错误

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]> 给我的反馈
给大家带来的不便望大家包含

Jacky Gu 就是偶啦, 嘻嘻~~ :lol:

bamfox 发表于 2005-1-7 20:19:57

BoyFriend,能否带领俺们这些测试的兄弟,为 Eva 把关呢? :-D

BoyFriend 发表于 2005-1-7 20:59:07

偶倒,俺都是个菜鸟呢。。。由于本人有一个嗜好,就是总是把rpm更新到最新。比如KDE啊,xorg啊,还有我的mandrake啊之类的,当然里面就包含了最新版本的qt了,再加上以前有一点点编译kde的经验,才能刚刚应付编译这个东东,现在要我担当如此大任,实在不敢当阿。。。惭愧惭愧。。
页: [1] 2
查看完整版本: “Eva 编译问题”集中贴