moto a1200开发环境配置

moto a1200开发环境配置 看了不少网上的关于moto e680系列和a1200系列开发环境配置的帖子,对偶帮助颇大现在实际建立一个: (for linux) 首先,必要的准备工作: 下载ezx-crosstool-0.5.tar.bz2文件http://lsb.blogdns.net/ezx-crosstool ,这个工具是由个人整理的,去掉了与ARM无关的很多脚本,并且限定了需要编译的文件版本,使用起来比较简单。 本机新建了一个用户gcc,准备用于编译,root用户会提示禁止操作的。 这里使用的是在/home/gcc目录下用gcc用户解压: bunzip2 ezx-crosstool-0.5.tar.bz2 tar xvf ezx-crosstool-0.5.tar 系统会自动生成/home/gcc/ezx-crosstool-0.5这个目录。 在ftp://ftp.gnu.org/pub/gnu下载如下四个文件,且必须是如下版本: binutils-2.15.tar.bz2 一组开发工具,包括连接器、汇编器 和其他用于目标文件和档案的工具 gcc-3.3.6.tar.bz2 GCC编译器的源代码 glibc-2.3.2.tar.bz2 提供系统调用和基本函数库 glibc-linuxthreads-2.3.2.tar.bz2 用于支持POSIX线程的函数库 在http://www.kernel.org/pub/linux/kernel/v2.4/下载如下一个文件: linux-2.4.26.tar.bz2 Linux核心源代码 全部下载后,放在/home/gcc/ezx-crosstool-0.5/downloads下,打开 /home/gcc/ezx-crosstool-0.5/build.sh文件,内容如下: #!/bin/sh set -ex CROSSTOOL_DIR=`pwd` TARBALLS_DIR=$CROSSTOOL_DIR/downloads RESULT_TOP=$CROSSTOOL_DIR/gcc-arm-iwmmxt export TARBALLS_DIR RESULT_TOP GCC_LANGUAGES="c,c++" export GCC_LANGUAGES ... 详细内容以后会解释,这里只注意RESULT_TOP=$CROSSTOOL_DIR/gcc-arm-iwmmxt 这句,这是说明编译后的路径,可以自定义修改。 如: RESULT_TOP=/home/gcc/arm 到这里,准备工作就结束了。 cd /home/gcc/ezx-crosstool-0.5 ./build.sh 我使用的笔记本(2GRAM+PM1.7G)+虚拟机,大概不到1个小时。完成后在系统环境 PATH添加新路径内容。 export PATH=$PATH:/home/gcc/arm/gcc-3.3.6-glibc-2.3.2/arm-linux/bin 就可以试试编译几个hello world程序,然后拷贝到手机上跑一下试试了。 这些仅仅是能够编译命令行的程序,如果需要编译qte或者ezx的图形界面程序,需要另外下载: dev-ezx-0.2.0,网上关于这个的描述很多,偶就不聒噪了。 (for win32) 下载cygwin,最好是完全安装,然后下载上述的ezx-crosstool-0.5文件,并把上面的文件下载到必要的download目录,然后运行build.sh。cygwin在win32环境下,大概需要编译3-4个小时左右,才能把这些arm-linux-gcc,arm-linux-g++编译成功。需要修改.bashrc,在最后一行添加: #我这里的目录是~/moto/ezx-crosstool-0.5 PATH=$PATH:.:~/moto/ezx-crosstool-0.5/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/distributed/bin export PATH 把a1200的/usr/lib整个目录拷贝到:~/moto/dev-ezx-0.2.0/目录,覆盖原有的lib目录。 然后就是准备编译一点gui程序试试了,这个是makefile EZX_BASE=.. XPREFIX=arm-linux- CXX=$(XPREFIX)g++ CC=$(XPREFIX)gcc STRIP=$(XPREFIX)strip CXXFLAGS=-fno-exceptions -fno-rtti -DQWS -Wall -g MOC=$(EZX_BASE)/moc/moc INCLUDE=-I$(EZX_BASE)/include/qt -I$(EZX_BASE)/include/ezx LIBDIRS=-L$(EZX_BASE)/lib -L$(EZX_BASE)/lib/ezx/lib ##LIBS=-lezxappbase -lezximagebase -lezxjpeg -lipp-jp -lipp-miscGen -lqte-mt LIBS= -lezxappsdk -lipp-jp -lezxopenwindow -lipp-miscGen -lezxappbase -lqte-mt -lezxjpeg -lezxpm OBJS=test2.o APP=test2 all: $(APP) dist: $(APP).pkg test2.o: test2.cpp test2.moc $(APP).pkg: $(APP).o $(STRIP) $(APP)/$(APP) tar cvfz $(APP).tar.gz $(APP) mv $(APP).tar.gz $(APP).pkg clean: rm -f $(OBJS) $(APP)/$(APP) $(APP).pkg *~ $(APP)/*~ *.moc %.o: %.cpp $(CXX) $(CXXFLAGS) $(INCLUDE) -c $< %.moc: %.cpp $(MOC) $< -o $@ $(APP): $(OBJS) $(CXX) $^ -o $(APP)/$@ $(LIBDIRS) $(LIBS) 这个是cpp: #include #include #include #include #include #include //for dispaly system icon QTextCodec* utf8_codec = QTextCodec::codecForName("utf-8"); QString un_utf8(const char*ChnStr) { return utf8_codec->toUnicode(ChnStr); } int main(int argc, char** argv) { ZApplication app (argc, argv); RES_ICON_Reader ir; QPixmap *pm; pm = new QPixmap("Dialog_Complete.gif"); pm[0] = ir.getIcon("Dialog_Complete.gif", 1); // This is Complete icon int reply = ZMessageBox::information(0, pm[0], un_utf8("hello wayne"), un_utf8("你好"), un_utf8("no"), un_utf8("cancel")); // use un-utf8 to display Unicode Chinese switch(reply) { case 0: ZMessageBox::timerMessage(0, pm[0],un_utf8("Shut down now..."),4); break ; case 1: printf("NO was Pressed/n"); break; case 2: printf("Cancel was Pressed/n"); break; } return 0; } 这是个简单的要死的程序,不做解释了,如有不明白的,看看ezx的头文件。 test2.desktop文件: [Desktop Entry] BigIcon=test2.png Comment=wayne test2 program Exec=test2.lin Icon=test2s.png Name=5M周刊 OsVersion=1.0 Shared=0 Type=Application test2.lin文件: #!/bin/bash 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 chmod +x /mmc/mmca1/.system/QTDownLoad/test2/test2 exec /mmc/mmca1/.system/QTDownLoad/test2/test2 这里需要提一下的是:cygwin的emacs用ctrl+x ctrl+c退出不了,呵呵,直接打开cygwin.bat文件,然后在@echo off下面添加: set CYGWIN=binmode tty ntsec 即可。还是喜欢emacs,这里暂不讨论vi :P。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值