• 7771阅读
  • 2回复

QT-x11-4.5的安装和使用 [复制链接]

上一主题 下一主题
离线bhwbj
 
只看楼主 正序阅读 楼主  发表于: 2009-06-11
— 本帖被 XChinux 从 Qt for Embedded Linux 移动到本区(2010-02-07) —
step1. 将qt-x11-opensource-src-4.5.1.tar.bz2拷贝到Linux下,解压缩并安装:

#tar jxvf qt-x11-opensource-src-4.5.1.tar.bz2

#cd qt-x11-opensource-src-4.5.1

#./configure –no-openssl

#make && make install

step2. 设置环境变量(两种方法):

仅当前用户有效(其他用户无效):修改$HOME/.bash_profile,加入:

PATH=/usr/local/Trolltech/Qt-4.5.1/bin:$PATH

立即生效:

#source $HOME/.bash_profile

所有用户有效(包括root和普通用户): 修改/etc/profile,加入以下行(一般在最后一行添加):

export PATH=/usr/local/Trolltech/Qt-4.5.1/bin:$PATH

立即生效:

#source /etc/profile

step3.

#cd qt-x11-opensource-src-4.5.1/tool/qvfb

#make

#cp qvfb /usr/bin

上述步骤是为了生成qvfb并可直接用于调试qt-embedded for x86的程序。方法为在源码目录下,终端输入:

#qmake -project

#qmake

#make

#qvfb &

#./demo

此时可能出现的编译和链接错误:

1.

qvfb.cpp:51:24: error: deviceskin.h: No such file or directory

qvfb.cpp:261: error: ‘DeviceSkinParameters’ was not declared in this scope

qvfb.cpp:261: error: expected `;' before ‘parameters’

qvfb.cpp:263: error: ‘parameters’ was not declared in this scope

qvfb.cpp:263: error: ‘DeviceSkinParameters’ is not a class or namespace

qvfb.cpp:264: error: invalid use of incomplete type ‘struct DeviceSkin’

qvfb.h:57: error: forward declaration of ‘struct DeviceSkin’

由于qt默认是不编译qvfb的,所以在Makefile中是不带deviceskin.h的路径的,导致上述类似错误出现。如果在Makefile中加入-I../shared/deviceskin 是不够的,具体的函数实现在../shared/deviceskin/deviceskin.cpp中,还是会出错。

解决办法:

#cp ../shared/deviceskin/deviceskin.h .

#cp ../shared/deviceskin/deviceskin.cpp .

#qmake -project

#qmake

#make

2.

.obj/release-shared/x11keyfaker.o: In function `X11KeyFaker::sendKeyEvent(int, bool)':

/tmp/qt-x11-opensource-src-4.5.1/tools/qvfb/x11keyfaker.cpp:463: undefined reference to `XTestFakeKeyEv$

/tmp/qt-x11-opensource-src-4.5.1/tools/qvfb/x11keyfaker.cpp:479: undefined reference to `XTestFakeKeyEv$

/tmp/qt-x11-opensource-src-4.5.1/tools/qvfb/x11keyfaker.cpp:458: undefined reference to `XTestFakeKeyEv$

/tmp/qt-x11-opensource-src-4.5.1/tools/qvfb/x11keyfaker.cpp:451: undefined reference to `XTestFakeKeyEv$

/tmp/qt-x11-opensource-src-4.5.1/tools/qvfb/x11keyfaker.cpp:472: undefined reference to `XTestFakeKeyEv$

.obj/release-shared/x11keyfaker.o:/tmp/qt-x11-opensource-src-4.5.1/tools/qvfb/x11keyfaker.cpp:463: more$

.obj/release-shared/x11keyfaker.o: In function `X11KeyFaker::connect()':

/tmp/qt-x11-opensource-src-4.5.1/tools/qvfb/x11keyfaker.cpp:548: undefined reference to `XTestQueryExte$

collect2: ld returned 1 exit status

make: *** [qvfb] Error 1

XTestFakeKeyEvent函数链接的问题。

解决办法:

在Makefile 的链接库中加入-lXtst。

#qmake -project

#qmake

#make

#cp ./qvfb /usr/bin

在当前目录下就会生成qvfb。
I'm Back!!
当加班已成为习惯
msn:bhwshx@hotmail.com

欢迎交流,人妖除外!!
离线bhwbj
只看该作者 2楼 发表于: 2009-06-12
我会的我就回答,我不会的我就看别人回答。。。
I'm Back!!
当加班已成为习惯
msn:bhwshx@hotmail.com

欢迎交流,人妖除外!!
离线cnnbboy

只看该作者 1楼 发表于: 2009-06-12
搂主最近在嵌入式版很活跃
快速回复
限100 字节
 
上一个 下一个