标题:qt4下输入法的问题
作者:haoyunp
日期:2011-08-13 17:57
内容:
我用的是天嵌的2440开发板,现在运行qt4.5的系统,输入法移植总不成功。下载了两个输入法,大家有时间的话帮我看看怎样移植输入法。
第一个输入法.syszuxpinyin输入法 设置好环境变量后,可以编译出4个库文件,但是按照移植的方法再工程中加入库文件则弹不出键盘界面,好像是找不到库文件。
编译syszuxpinyin-demo工程,则提示找不到-lsyszuxpinyin,不知道怎么解决,
安装方法提示:
一.首先是库libsyszuxpinyin.so的移植
1. 将 SYSZUXpinyin.tar.bz2 拷到/opt/进行解压 然后 cd SYSZUXpinyin
2. /home/linux ....../qmake -project // /home/linux ....../qmake 为QTE交叉编译后生成的bin目录下的可执行文件
修改 .pro文件
TEMPLATE = lib
在.pro中添加
RESOURCES += syszuxpinyin.qrc
3. /home/linux ....../qmake
4. make
把生成的
libSYSZUXpinyin.so
libSYSZUXpinyin.so.1
libSYSZUXpinyin.so.1.0
libSYSZUXpinyin.so.1.0.0
库文件拷到 /home/linux..../lib 下面
如要在板子上运行,则需要把以上库文件拷到板子上相应的库里面去 (如 /qt4/lib/下)
二.然后是把输入法编译到Qt中
将源码包中的syszuxim.h和syszuxpinyin.h头文件和syszuxpinyin.ui面板放置到你Qt程序的源代码路径下
1. /home/linux ....../qmake -project
将你的Qt程序的.pro文件中添加 QMAKE_LIBS += -lsyszuxpinyin
在主界面源文件 .cpp中加入
#include "syszuxpinyin.h"
#include "syszuxim.h"
并在需要启动输入法的函数里面加
QWSInputMethod* im = new SyszuxIM;
QWSServer::setCurrentInputMethod(im);
2. /home/linux ....../qmake
3. make
第二个输入法:MurphyPinyin0.05,安装方法再附件中
这个输入法编译就有误,提示找不到omp.h文件,在系统中搜索也找不到这个文件。
下载的这两个输入法应该能移植成功,只是我刚开始学习qt及linux系统,好多东西不清楚,所以请大家帮忙试试。已经 ..
#1 回 楼主(haoyunp) 的帖子 [wxj120bw 08-13 22:16]
syszuxpinyin1.0.tar.gz 编译生成有个库文件 应该是syszuxpinyin.so文件或者是其他文件 这个库文件应该是syszuxpinyin-demo.tar.gz 编译所需的 所以有提示-lsyszuxpinyin,你需要将syszuxpinyin1.0.tar.gz放到系统目录,如/usr/lib。
移到板上的键盘程序应该syszuxpinyin-demo.tar.gz 编译生成的吧 如果弹出来 应该是库文件没找到 你将库文件放到系统库路径下/usr/lib 尝试下
omp.h没有印象。看下编译MurphyPinyin-0.05.rar 需要编译器的版本。或许是版本对不上导致的。
#2 [haoyunp 08-16 13:10]
我的编译器的库文件文件夹是/opt/EmbedSky/qt-4.5/__install/arm/lib,我把编译的库文件放进去了
不明白为什么“你需要将syszuxpinyin1.0.tar.gz放到系统目录,如/usr/lib。”,不过我试了试也是不行。
编译的时候提示:
Running build steps for project syszuxpinyin...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make -w
make: Entering directory `/opt/hp/SYSZUXpinyin-demo'
arm-linux-g++ -Wl,-O1 -Wl,-rpath,/opt/EmbedSky/qt-4.5/__install/arm/lib -o syszuxpinyin main.o line.o moc_syszuxpinyin.o moc_line.o moc_syszuxim.o qrc_syszuxpinyin.o -L/opt/EmbedSky/qt-4.5/__install/arm//lib -lsyszuxpinyin -lQtWebKit -lQtGui -L/tslib-1.4/lib -L/opt/EmbedSky/qt-4.5/__install/arm//lib -lts -lQtNetwork -lQtCore -lm -lrt -ldl -lpthread
/opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lsyszuxpinyin
collect2: ld returned 1 exit status
make: Leaving directory `/opt/hp/SYSZUXpinyin-demo'
make: *** 错误 1
Exited with code 2.
Error while building project syszuxpinyin
When executing build step 'Make'
#3 回 2楼(haoyunp) 的帖子 [wxj120bw 08-16 22:34]
编译这个源码syszuxpinyin1.0.tar.gz 时,你生成了那些文件?
#4 [351339482 08-24 16:33]
引用第2楼haoyunp于2011-08-16 13:10发表的:
我的编译器的库文件文件夹是/opt/EmbedSky/qt-4.5/__install/arm/lib,我把编译的库文件放进去了
不明白为什么“你需要将syszuxpinyin1.0.tar.gz放到系统目录,如/usr/lib。”,不过我试了试也是不行。
编译的时候提示:
Running build steps for project syszuxpinyin...
.......
我也遇到同样的问题了 也是出现 cannot find -lsyszuxpinyin 请问解决了吗?
#5 Re:回 2楼(haoyunp) 的帖子 [351339482 08-24 16:35]
引用第3楼wxj120bw于2011-08-16 22:34发表的 回 2楼(haoyunp) 的帖子 :
编译这个源码syszuxpinyin1.0.tar.gz 时,你生成了那些文件?
我编译生成了4个库文件,libSYSzuxpinyin.so,,libSYSzuxpinyin.so.1libSYSzuxpinyin.so.1.0libSYSzuxpinyin.so.1.0.0