标题:share:我在使用qtopia时的一些问题和解决. 希望大家都能共享自己的经验
作者:coolflowers
日期:2006-05-07 22:23
内容:
我用的是 qtopia-free-1.6.0
系统是red hat 8.0
在qtopia达建好以后,首先我写了一个shell, 以便以后方便的运行qtopia,
贴出:
export QTOPIADIR=/root/qtopia/qtopia_1.6_install
export QPEDIR=$QTOPIADIR/qtopia-free-1.6.0
export TMAKEDIR=$QTOPIADIR/tmake-1.11
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export PATH=$TMAKEDIR/bin:$PATH
export QTEDIR=$QTOPIADIR/qt-2.3.4
export PATH=$QTOPIADIR/qt-2.3.4$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTOPIADIR/qt-2.3.4/lib:$LD_LIBRARY_PATH
export PATH=$QTOPIADIR/qt-2.3.2/bin:$PATH
export LD_LIBRARY_PATH=$QTOPIADIR/qt-2.3.2/lib:$LD_LIBRARY_PATH
export QT3DIR=$QTOPIADIR/qt-x11-free-3.1.2
export PATH=$QTOPIADIR/qt-x11-free-3.1.2/bin:$PATH
export LD_LIBRARY_PATH=$QTOPIADIR/qt-x11-free-3.1.2/lib:$LD_LIBRARY_PATH
export QTDIR=$QTEDIR
export QPEDIR=$QTOPIADIR/qtopia-free-1.6.0
export PATH=$QPEDIR/bin:$PATH
export QTDIR=$QTEDIR
QTOPIADIR=/root/qtopia/qtopia_1.6_install 这个目录是你所有的相关文件存放的地方.
red hat有自己的qt, 但是这里我自己编译了qt-x11-free-3.1.2.
大家自己根据情况修改.
这里设置环境变量要当心出错, 我就犯了粗心达意的毛病, 吃了不少亏
我将这个shell存为/root/shell/qtopia.shell
下面就是要这个shell生效,
#source /root/shell/qtopia.shell
现在可以看一下你达建的平台了,
#qvfb & //后台运行
#qpe &
OK, 看到效果了吗? 我想大家都会看到你期待很久的东西, 如果还没用,那么也许你应该在检查前面是否有什么问题.
到了这里, 当时的我心情非常开心: 终于可以开始我的应用开发实验了! 可是我高兴的太早了 ! 问题接踵而至.
1.当我关掉当前的qvfb窗口, 尝试再次运行时:
#qvfb &
正常
#qpe &
Can't open framebuffer device /dev/fb0
Transformed driver cannot connect
还好,google了一下,找到了解决方法:
(引用一下别人:)
" 其实问题出在qpe.conf这个文件,里面的变量发生了变化.
有两中方法解决:
1.在qvfb之前加上一句export QWS_DISPLAY=QVFb:0;
2.如果上述方法不行,哪只能从你的备份中把/root/Settings的qpe.conf替换,
最坏的是重新在来一边! "
我将qpe.conf给rm 了
呵呵,你有没有解决?
2下面也许你要自己动手写一个简单的程序, 我是这样, 一厢情愿的以为所有的问 ..
#1 [coolflowers 05-07 22:25]
可以放心走了 ,呵呵 !
#2 [longqm1984 05-08 16:02]
老大.我也是跟你一样的问题啊,谢谢你啊.呵呵,现在终于找到答案啦
#3 [shiroki 05-11 18:55]
赫赫, 这段写得对吗? 很怀疑哦
2下面也许你要自己动手写一个简单的程序, 我是这样, 一厢情愿的以为所有的问题都没有了,哈哈,
如果你写的代码没有问题, 但是编译的时候却出错了, 如果你的错误类似下面:
main.cpp:2:35: qtopia/qpeapplication.h: No such file or directory
main.cpp: In function `int main(int, char**)':
main.cpp:6: `QPEApplication' undeclared (first use this function)
main.cpp:6: (Each undeclared identifier is reported only once for each function
it appears in.)
main.cpp:6: parse error before `(' token
main.cpp:9: `a' undeclared (first use this function)
main.cpp:5: warning: unused parameter `int argc'
main.cpp:5: warning: unused parameter `char**argv'
make: *** [.obj/linux-generic-g++//main.o] Error 1
有开始google,baidu,不是很顺利,但是最终还是给我找到了方法:
回到我的/root/qtopia/qtopia_1.6_install下,
回到我的/root/qtopia/qtopia_1.6_install下,
运行ldconfig,使生成的qt和qtopia库有效,运行一次即可, 而我在前面编译的过程中没有这个过程。
当然,在这之前你应该修改一下你的/etc/ld.so.conf
"为了在PC上模拟运行Qtopia,需要用到对应Qt版本的库文件,因此需要修改/etc/ld.so.conf文件以适应刚刚安装的Qt"
ldconfig负责的是运行时的库的查找,好像和你编译时的错误不搭界吧? 你是这么解决的吗?
本来想给你这篇加个精,不过觉得这段有点儿毛病。
#4 [tangruo 05-12 15:46]
当然,在这之前你应该修改一下你的/etc/ld.so.conf
"为了在PC上模拟运行Qtopia,需要用到对应Qt版本的库文件,因此需要修改/etc/ld.so.conf文件以适应刚刚安装的Qt"
ldconfig负责的是运行时的库的查找,好像和你编译时的错误不搭界吧? 你是这么解决的吗?
本来想给你这篇加个精,不过觉得这段有点儿毛病。
我想是这样的red hat 8.0本身自带有qt的连接库但是版本比较低,所以楼主把原来在/etc/ld.so.conf中指定的qt连接库该为Qtopia的连接库,然后用ldconfig使其立即生效
#5 [coolflowers 05-13 10:00]
呵呵,谢谢楼上两位
又想了想,是有问题的
其实设置环境变量以后, /etc/ld.so.conf就可以不用修改了
呵呵, 我也是在学习中, 如果还有错误请指出,谢谢啊
这几天忙着毕业设计, 没怎么来看