我的编译EZX例子的经历

来源:互联网 发布:淘宝达人手机发帖 编辑:程序博客网 时间:2024/06/08 12:36

好吧,接着上次的讲吧

首先,需要修改/opt/qt-2.3.6/mkspecs/qws/linux-ipaq-g++/qmake.conf这个文件
把其中的这一行
QMAKE_LFLAGS  = -Wl,-rpath-link,/vobs/ezx_apps/code/lib:/vobs/ezx_api/code/utility/lib:/vobs/ezx_j2me/code/lib:/vobs/ezx_db/code/build -Wl,-rpath,/usr/lib/ezx/lib:/usr/lib/ezx/lib/inputmethods      改成
QMAKE_LFLAGS  = -Wl,-rpath-link,/vobs/ezx_apps/code/lib:/vobs/ezx_api/code/utility/lib:/vobs/ezx_j2me/code/lib:/vobs/ezx_db/code/build:$(QTDIR)/lib -Wl,-rpath,/usr/lib/ezx/lib:/usr/lib/ezx/lib/inputmethods:$(QTDIR)/lib

(注:上面的一大片空白在原稿中是没有的,但是发到blog上来,怎么编辑怎么改都有,我也不知道为什么)接下来,在你的每个ezx程序的.pro文件中,都需要含有以下行,没有的话需要添加到文件末尾,保存后再重新用qmake生成Makefile
INCLUDEPATH +=  ./ /
                /opt/ezx/include
DEPENDPATH += /opt/ezx/include

接下来你就会发现,/opt/ezx目录下的两个例子:hello和myedit都能顺利地make通过编译了
用arm-linux-strip去掉生成的文件中的多于信息

再拷到SD卡上telnet运行
先export QTDIR=/usr/lib/ezx
export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
接下来
cd /mmc/mmca1
# ./myedit
很不幸,尽管能顺利地通过编译
但程序运行的结果是这样的
# ./myedit
FS_lock_init: sem id 32769, NOT mine
FS_init shm @ addr 0xbeaf6000, size 163840, NOT mine
./myedit: relocation error: ./myedit: undefined symbol: _ZN11ZMainWidget15setInp
utMethodsEP7QWidgetRK5QUuid
估计是小E上没有ZMainWidget::setInputMethod(QWidget*,QUuid)这个函数
郁闷
于是去掉所有例子中有关输入法的代码,又编译了一遍
运行后,依然有错误
FS_lock_init: sem id 32769, NOT mine
FS_init shm @ addr 0xbeaf6000, size 163840, NOT mine
但居然能在手机上看到一个有编辑行的窗口了,底下还有两个按钮
由于注释掉了有关输入法的代码,所以没有办法输入文字了
点左边的按钮退出,telnet窗口出现错误提示
segmentation fault
问题还真多,但毕竟能在手机上看到自己编译的ezx风格的程序了。
呵呵,以上是我编译ezx程序的一些经历,以后有了新的进展会继续放到这里来的,欢迎各位批评指正。