想问下,你用的是不是MOTO的手机,用EZX平台开发的,如果是的话,你可以看下下面的文章。
【转贴】原贴链接:
http://club.ccmove.com/nclub/topicdisplay.aspx?boardid=1189&pageno=1&TopicID=430652 感谢所有发布编译心得的XD。呼吁XD发扬Linux精神,将所开发的程序开放源代码,实在舍不得,部分开放也行。向 MFC 的 blackhawk和yutian_tj等大侠致敬。
感谢yutian_tj和OopsWare两位大侠的支持!!!
感谢yutian_tj的鼓励!!!
谢谢加精!!!
一、先说所需要的资源(有教程没有资源也白搭):
1、VMware-workstation-5.5.1-19175.exe
2、VMware Workstation V5.5.1 Build 19175 汉化补丁HF_VMware551.exe
下载地址
http://www.onlysea.com/Software/Catalog12/4534.html 3、redhatlinux9安装包
下载地址
http://www2.piaodown.com/down/soft/855.htm 4、xscale-gcc-vfp-3.3.tar.gz
下载地址:
ftp://e680:e680@e680.3322.org:1680/===== 软件 =====/编程工具/xscale-gcc-vfp-3.3.tar.gz
5、ezx-sdk.tar.gz
6、qt-2.3.gz
7、Other_lib_headers.tar.gz
下载地址:
ftp://down:ccmove.com@211.14.138.2/游戏软件/E680i专区/EZX.rarEZX.rar内有第5、6、7项三个文件。
8、tmake-1.8.tar.gz
下载地址:
ftp://ftp.trolltech.com/freebies/tmake/tmake-1.8.tar.gz 9、lib.tar.gz:E680i的库文件:Telnet到手机或用Qonsole工具tar出来备用:
tar zcvf /mmc/mmca1/lib.tar.gz /usr/lib
再从SD卡上将lib.tar.gz copy出来。
第4、5、6、7、8项资源在2号和3号服器上有,不过很难连上,我断断续续的下了3个月,直到上个星期五才下全。我的经验是:凌晨5:00-8:30,速度最快,用FlashGet开单线程,单连接,重复连接不限次数。谁有高速空间,我来上传。有其他办法也请告诉我。
二、手机环境:行货E680i-ABP ,刷了爽版ABP。
计算机环境:P4-2.6G ,256M ,1GU盘 ,加装虚拟光驱软件。
三、具体步骤:主要根据imkerberos大侠的帖子,综合了OopsWare和JetJoe等XD发布的方法,修改而成,我研究了两天(Linux我也是现学现卖, c语言懂一点点),重复了N次(仅Linux我就安装了3遍),只要安装了上面的资源,按下面的教程,保证能顺利编译出自己的程序。
1、安装虚拟光驱(DAEMON V3.47),用来加载Iso文件。下载地址:
http://download.pcworld.com.cn/download/545.html 2、安装VMware-workstation和Redhat9.看66楼,注意以下几点:
a、安装完成后创建一个用户kerberos,创建后在/home/下会有一个kerberos目录。方便后面的环境设置。
b、以root身份登录,方便装载Usb,Cdrom设备,后面与WinXP交换文件时要用到。
c、退出时,要按照正常关机程序退出,否则损坏有关文件(因此我重装了3遍)。
d、最好安上图形环境,方便操作。
3、Linux和WinXP交换文件的方法:
推荐安装VMware tools ,方法在133楼。
用U盘:先在Xp下把文件复制到U盘上,然后挂到Linux下:挂载方法:
a、让Redhat9识别到U盘,选择菜单“虚拟机->可移动设备-->Anonymous Vendor……端口1”;
b、在/mnt下新建usb目录,如果存在则忽略这一步,用命令或图形环境:
命令:
cd /mnt
mkdir usb
cd /
c、加载U盘到/mnt/usb
命令:mount -t vfat /dev/sdb1 /mnt/usb
(有时会不成功,可以重启计算机,按程序再试)
d、卸载U盘,命令:umount /mnt/usb
用虚拟光驱:把以上文件制成ISO格式的文件(用UltraISO软件,下载地址:
http://soft.hackbase.com/36/20051016/7986.html),加载到虚拟光驱后,用以下命令加载光驱:mount /dev/cdrom /mnt/cdrom卸载光驱:umount /mnt/cdrom
还有其他方法自己找吧。
4、安装 xscale-gcc-vfp-3.3.tar.gz,安在/usr/local/arm目录下:
把xscale-gcc-vfp-3.3.tar.gz复制到根目录下(和root文件夹在同一目录),新建一终端(鼠标右键点桌面就会看到或在红帽子里的系统工具中找),执行以下命令:
cd /
tar xvzf xscale-gcc-vfp-3.3.tar.gz
(原贴中tar xvzf -C / xscale-gcc-vfp-3.3.tar.gz无法执行,不知错在哪里,请知道的大侠解释一下)
不加EZX环境,用 arm-linux-gcc 编译最简单的c程序:
helloworld.c :
main()
{
printf("Hello Moto!\n");
}
用 arm-linux-gcc 编译这个程序
arm-linux-gcc helloworld.c
生成 a.out 文件,复制到SD卡上,telnet 上去或者用Qonsole直接在手机上运行命令:
cd mmc/mmca1
./a.out
显示 Hello Moto!
5、在/home/kerberos/下面创建e680目录,把第5、6、7、8、9项文件复制到这个目录下。执行以下命令:
cd /home/kerberos/e680
tar xvzf qt-2.3.gz
tar xvzf ezx-sdk.tar.gz
tar xvzf Other_lib_headers.tar.gz
tar xvzf lib.tar.gz
tar xvzf tmake-1.8.tar.gz
完成后生成了以下目录(在e680目录下):qt-2.3.6、ezx、other、usr、tmake-1.8
6. 拷贝头文件:
把ezx和 other中include目录下的头文件拷贝到qt的头文件目录中(最好用图形窗口操作,复制--粘贴),命令如下:
cp ezx/include/* other/include/* qt-2.3.6/include
7. 拷贝E680i上的库文件:E680i的库文件在usr目录中
a、把usr/lib/ezx/lib/ 目录下的所有文件,包括子目录复制到qt-2.3.6的lib目录下
b、把usr/lib/目录下libezx打头的文件复制到qt-2.3.6的lib目录下
8. 设置tmake:
a、复制(不是更改)linux-arm-g++为linux-e680-g++,命令如下:
cd tmake-1.8/lib/qws
cp linux-arm-g++ linux-e680-g++ -r
b、到linux-e680-g++目录下,用gedit打开tmake.conf 文件(在右键菜单-打开方式中)或用命令:vim linux-e680-g++/tmake.conf(vim我不会用,请自行研究)
c、修改tmake.conf文件,具体改这么几行:
感谢OopsWare和yutian_tj两位大侠的指点和帮助
把53、54行重新修改如下:
TMAKE_LIBS_QT = -lezxappbase-xscale-r -lqte-mt-xscale-r -lezxjpeg-xscale-r -lezxnotification-xscale-r
TMAKE_LIBS_QT_THREAD = -lqte-mt
这样可以成功编译EZX.rar包里的hello和myedit两个源文件,不过运行有问题,需要修改源程序。
这是原来的修改:
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-xscale-r (这样是为了连接 EZX库)
9. 编辑源程序:
a、新建一个testezx目录,放置源程序文件.
cd /home/kerberos/e680/
mkdir testezx
cd testezx
b、编辑一个工程文件( 可以用gedit或vim): testezx.pro
文件内容:
TEMPLATE = app
CONFIG += qt thread release warn_off
TARGET = testezx
HEADERS +=
SOURCES += test.cpp
LIBS +=
c、编辑源文件test.cpp:
文件内容如下:
#include <qapplication.h>
#include <qwidget.h>
#include <ZApplication.h>
#include <ZMainWidget.h>
int main (int argc, char** argv)
{
QApplication app (argc, argv);
QWidget* w = new QWidget ;
app.setMainWidget (w);
w->show();
return app.exec();
}
10.编译程序
a、设置环境变量(这个很重要),输入命令:
export PATH=/usr/local/arm/bin:/home/kerberos/e680/tmake-1.8/bin:$PATH
export QTDIR=/home/kerberos/e680/qt-2.3.6
export TMAKEPATH=/home/kerberos/e680/tmake-1.8/lib/qws/linux-e680-g++
b、编译程序:在testezx目录下输入命令:
tmake testezx.pro > Makefile
make
11、 运行程序:
把 testezx 拷贝到SD卡上,telnet(不会telnet,用Qonsole也可以) 到小E上。运行命令:
设置手机环境:
export QTDIR=/usr/lib/ezx
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
export EZX_RES_ICON_PATH=/usr/language/icon
简单的设置方法:# . /home/native/.profile
cd mmc/mmca1
./testezx
你就看见一个空的窗口,如下面的图示,兴奋吧.
12、制作MKPG安装文件:
MKPG 是 tar.gz 的文件,要加上 Gzip 压缩:
A、Desktop文件设置:
a、Desktop文件格式:
[Desktop Entry]
BigIcon= ##大图标,缩列图显示用
Comment= ## 注释
Exec= ## 运行程序名称
Icon= ## 小图标,列表显示用
Name= ## 显示的名称
OsVersion=1.0
Shared=1
Type=Application
b、用UltraEdit新建test.desktop文件 ,输入下列内容:
[Desktop Entry]
BigIcon=test.png
Comment=TestSoft by 有恒
Exec=Test.lin
Icon=test_sm.png
Name=Test
OsVersion=1.0
Shared=0
Type=Application
B、lin文件设置:用UltraEdit(下载地址:
http://www.skycn.com/soft/2249.html)新建Test.lin文件,输入下列内容:
#!/bin/bash
export QTDIR=/usr/lib/ezx
export LD_LIBRARY_PATH=$QTDIR/lib
export EZX_RES_FONT_PATH=$QTDIR/lib/fonts
export EZX_RES_ICON_PATH=/usr/language/icon
exec /mmc/mmca1/.system/QTDownLoad/test/testezx
C、制作两个图标test.png(尺寸37*32像素)test_sm.png(尺寸28*24像素 )
D、新建test文件夹,把编译好的 testezx 文件和Test.lin、test.desktop、test.png、test_sm.png 等文件放入。
E、运行命令:
tar cfz test.tar.gz test
13、把 test.tar.gz改成test.mpkg,复制到手机上安装,大功告成!!!!!!!!!!