首页| 论坛| 消息

标题:【提问】qt修改文件编译后不起作用,何解?
作者:liger
日期:2005-11-24 12:07
内容:

弄了几天qte了,写写我的过程
我的配置:
软件:tmake1.1.3+qt-x11-free-2.3.2+qt-embedded-free-2.3.7
开发host:redhat9,x86
开发target:linux2.4.20, MIPS
host与target用tcp/IP连接
调试方式:
使用ddd通过网络调试,可以单步.target通过nfs与host共享开发目录。
编译了tmake和qtx11,发觉没有什么用。后来就不用了。

在host上增加一个linuxfb型的驱动myxxx,myxxx从qgfxlinuxfb继承,并修改成我
自己系统的操作方式。
在qgfxraster_qws.cpp中增加包含myxxx.cpp,并在driverTable []中增加我自己的
qt_get_screen_myxxx。
在host上设置环境变量
export QTDIR=$PWD
export QTEDIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
配置:
./configure -xplatform linux-mips-g++ -shared -debug -thread
编译qte2.3.7:
make
得到libqte.so.2.3.7及其链接libqte.so libqte.so.2 libqte.so.2.3
得到所有的examples和tutorial
在target上设置
export QWS_DISPLAY=myxxx
export QWS_SIZE=640x480
在target上运行./hello -qws
出现错误:
myxxx driver cannot connect
以上是我的操作过程,下面说说我遇到的问题。

使用ddd远程调试跟踪,发觉driverTable []中并没有加入qt_get_screen_myxxx项。
就做了一个试验,在输出myxxx driver cannot connect的函数qt_get_screen里加了一行,
qFatal("XXXXXXXXXXXXXXXXXXXXXXXXXXX");
变成:
QScreen *qt_get_screen( int display_id, const char *spec )
{
QString displaySpec( spec );
QString driver = displaySpec;
int colon = displaySpec.find( ':' );
if ( colon >= 0 )
driver.truncate( colon );
qFatal("XXXXXXXXXXXXXXXXXXXXXXXXXXX");
int i = 0;
while ( driverTable.name ) {
if ( driver.isEmpty() || QString( driverTable.name ) == driver ) {
qt_screen = driverTable.qt_get_screen( display_id );
if ( qt_screen ) {
if ( qt_screen->connect( spec ) ) {
return qt_screen;
&n ..

回复 发表
主题 版块