- 论坛徽章:
- 0
|
以下是在移动天使看到的文章,俺在手机装了个OPIE,感觉好爽呀,只是不是专门为680开发的,有一部分程序不能用,下面的DX讲的构建环境,我想问一下所谓的QT到底啥意思呀
构建E680的开发环境- -
www.CCMOVE.com
最近买了个E680的水货手机。本来我手里手机很多了,不过没有一个是Linux的,觉得比较可惜,这可是我的职业 。听说E680水货比较便宜,而且在"移动天使"(http://club.ccmove.com/)上的fans正DIY地热火朝天,比较眼热。 冲着E680的DIY性能,我决定买了一个。
www.CCMOVE.com
在“移动天使”论坛上,大部分DIY的程序是从OPIE拿过来的,所以在E680上必须加载另外一个QT库和OPIE的库,比较浪费资源。幸亏liuto大侠拿到了EZX的SDK,我赶紧下载下来了。很可惜,是A760系列的SDK,E680上没法用。
www.CCMOVE.com
幸好liuto的ezx SDK有一些头文件,象Moto这种大公司,开发上应该保持连续性。所以我猜测EZX SDK的头文件应该变化不大,这样我就可以使用A760的EZX SDK 的头文件配合E680上的qt,ezx的库文件进行程序的交叉编译了。 果然,我成功了。
www.CCMOVE.com
下面就是具体步骤:
所需要的资源:
1. xscale-gcc-vfp-3.3.tar.gz
2. ezx-sdk.tar.gz qt-2.3.tar.gz Other_lib_headers.tar.gz
3. tmake-1.8.5
说明:
1. 本来我手头上有一份 montavista 的gcc交叉编译环境,但是它没有包含VFP的支持,需要自己编译一份。在“移动天使”的2号ftp上(ftp://hbsztvu.cn) 9====工具====/编程工具 下有编译好的GCC。
2. 在移动天使的3好服务器上有EZX.rar,这是A760系列的开发包,不能直接用在E680上,不过没有关系,我们只需要这个包里面的ezx-sdk.tar.gz 和 qt-2.3.tar.gz 中的一些头文件。
3. 这个是Trolltech (qt的开发商)公司的一个为Qt项目生成Makefile的工具。当然你也可以使用自己的qmake (在Qt 3.x中使用 qmake, 而在qt 3.0 以前一直是使用tmake的).我懒得编译Qt了,所以直接使用了tmake,tmake是用perl写的,呵呵,不用编译。
www.CCMOVE.com
步骤:
1. 安装 xscale-gcc-vfp-3.3.tar.gz:
#tar xvzf -C / xscale-gcc-vfp-3.3.tar.gz
gcc 的编译器就装在了/usr/local/arm下。
2. 解开 ezx-sdk 和 qt-2.3 的包
www.CCMOVE.com
3. 去Trolltech (http://www.trolltech.com) 的网站上去down tmake,安装。
www.CCMOVE.com
4. 创建一个目录比如我的:
mkdir /home/kerberos/e680/
cd /home/kerberos/e680
tar xvzf /qt-2.3.tar.gz的路径/qt-2.3.tar.gz
qt 的目录是 qt-2.3.6
tar xvzf /ezx-sdk.tar.gz的路径/ezx-sdk.tar.gz
tar xvzf /Other_lib_headers的路径/Other_lib_headers.tar.gz
ezx-sdk 的目录是 ezx, Other_lib_headers 的目录是other
www.CCMOVE.com
5. 拷贝头文件:
把ezx-sdk 和 other_lib_headers 解开的包的头文件拷贝到qt的头文件目录中:
cp ezx/include/* other/include/* qt-2.3.6/include
www.CCMOVE.com
6. 拷贝E680上的库文件:
首先要把E680的的一些库文件拷贝出来,方便的方法是telnet到E680以后,使用samba协议拷贝
\\169.254.142.2\system\usr\lib\ezx\lib\ 的库到qt-2.3.6的lib目录下
\\169.254.142.2\system\usr\lib\libezx* 到qt-2.3.6的lib目录下
拷贝过程中要注意,不要拷贝符号链接的库。 只有版本号最长的文件名的库才是真正的库文件。
www.CCMOVE.com
7. 安装tmake:
随便把tmake解开到某个目录中,比如我的在/home/kerberos/e680/tmake-1.8
由于生成Makefile文件需要一些设置,我们这样来做:
cd tmake-1.8/lib/qws
cp linux-arm-g++ linux-e680-g++ -r
vim linux-e680-g++/tmake.conf
来修改tmake.conf文件,具体改这么几行:
54 行: TMAKE_LIBS_QT_THREAD = -lqte-mt
改成 TMAKE_LIBS_QT_THREAD = -lqte-mt-xscale-r -lezxappbase-xscale-r -lezxappsdk-xscale-r -lezxjpeg-xscale-r -lezxtapi-xs cale-r -lezxfunlight-xscale-r
这样是为了连接 EZX库
www.CCMOVE.com
8. 设置环境变量:
修改 /home/kerberos/.barshrc (你的可能在不同的用户目录下)
增加以下几行:
PATH=/usr/local/arm/bin PATH
QTDIR=/home/kerberos/e680/qt-2.3.6
TMAKEPATH=/home/kerberos/e680/tmake-1.8/lib/qws/linux-e680-g++
export PATH TMAKEPATH QTDIR
www.CCMOVE.com
使环境变量生效:
source /home/kerberos/.bashrc
www.CCMOVE.com
9. 测试程序:
www.CCMOVE.com
cd /home/kerberos/e680/
mkdir test
cd test
编辑一个工程文件: testezx.pro
=====================以下是文件内容:
TEMPLATE = app
CONFIG += qt thread release warn_off
TARGET = testezx
www.CCMOVE.com
HEADERS +=
www.CCMOVE.com
SOURCES += test.cpp
LIBS +=
================文件内容结束
www.CCMOVE.com
编辑源文件:
===================== test.cpp 文件内容如下:
- #include <ZApplication.h>
- #include <ZMainWidget.h>
- #include <ZMultiLineEdit.h>
- #include <qlineedit.h>
- #include <ZScrollView.h>
- #include <qframe.h>
- #include <ZPushButton.h>
- #include <qpushbutton.h>
- www.CCMOVE.com
- int main (int argc, char** argv)
- {
- QWidget* cst;
- ZScrollView* sv;
- ZMultiLineEdit* ml;
- www.CCMOVE.com
- ZApplication app (argc, argv);
- ZMainWidget* w = new ZMainWidget (true,0);
- sv = new ZScrollView (w, "sv");
- w->setContentWidget (sv);
- sv->show ();
- www.CCMOVE.com
- /*
- QPushButton* bt = new QPushButton ("Hello E680!", sv->viewport());
- sv->addChild (bt, 0, 0, true);
- bt->show ();
- */
- www.CCMOVE.com
- ml = new ZMultiLineEdit (sv->viewport(), true, 6);
- sv->addChild (ml, 0, 0, true);
- ml->show ();
- www.CCMOVE.com
- cst = w->getCSTWidget();
- www.CCMOVE.com
- QPushButton* mybt = new QPushButton ("quit button", cst);
- mybt->show();
- www.CCMOVE.com
- QObject::connect ( mybt, SIGNAL(click()), qApp, SLOT (slotQuickQuit()) );
- www.CCMOVE.com
- app.setMainWidget (w);
- w->showWithInputMethod(IMID_ENGLISH_KB);
- app.showMainWidget (w);
- return app.exec();
- }
复制代码
==================test.cpp文件内容结束
www.CCMOVE.com
编译程序:
tmake testezx.pro > Makefile
make
www.CCMOVE.com
10. 运行程序:
把 testezx 拷贝到SD卡上,telnet 到小E上。运行:
. /home/native/.profile
注意 点后面有一个空格的。
./testezx
你就看见一个空的窗口和一个英文键盘了。
www.CCMOVE.com
基本上还是我没有拿到小E时候的思路,呵呵,看来我的感觉越来越灵敏了。![](static/image/smiley/default/icon_smile.gif)
www.CCMOVE.com |
|