终于建立好了基于arm的QTE开发环境,使用的是脚本文件buildarm,在使用的过程中曾经遇到一下问题:
1.arm-linux-g++命令找不到:
设置环境变量 export PATH=/usr/local/arm/2.95.3/bin:$PATH
2.找不到uuid.h和cannot find -lqtopia的问题;
到网上下载一个e2fsprogs-1.35.tar.gz包,然后执行:
#tar xzf e2fsprogs-1.35.tar.gz
#cd e2fsprogs-1.35
#./configure -host=arm-linux -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -prefix=/usr/local/arm/2.95.3/arm-linux
#make
#make install lib/uuid/
将e2fsprogs-1.35/lib/目录下uuid的文件夹复制到/armsys2410/qt_arm/qtopia/include下
将e2fsprogs-1.35/lib/中的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2复制到/armsys2410/qt_arm/qtopia/lib下。
3.lib/libuuid.so.1:could not read symbols:
将e2fsprogs-1.35/lib/中的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2复制到/usr/local/arm/2.95.3/arm-linux/lib下.
4.tmake 版本至少需要1.11的问题:
设置环境变量 export PATH=$TMAKEDIR/bin:$PATH
5./usr/local/arm/2.95.3/arm-linux/bin/ld: cannot find -ljpeg
下载jpegsrc.v6b.tar.gz到qtarm目录并解压,进入目录jpeg-6b:
./configure --enable-shared
make (得到libtools程序)
./configure --enable-shared
修改生成的Makefile文件:
prefix = /qtarm/qt (qte的路径)
CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc
AR =/usr/local/arm/2.95.3/bin/arm-linux-ar rc
AR2=/usr/local/arm/2.95.3/bin/arm-linux-ranlib
cp jconfig.doc jconfig.h
mkdir -p /qtarm/qt/man/man1
make
生成的libjpeg.so在.libs下,将libjpeg.so拷贝到/usr/local/arm/2.95.3/bin/arm-linux/lib下.
另:编译出现问题修改后要make clean
先从网上下了一个ncurses5.6 的在用 ./configure --host=arm-linux --prefix=/usr/local/arm/2.95.3 编译后 下载到arm板子上
后出错,说不能打开 Error opern terminal 经过分析排错发现是 TERM=xterm 要改为TERM=vt100 因为在 /etc/v/vt100 后解决这个问题
后又出现
symbol nl_langinfo, version GLIBC_2.0 not defined in file libc.so.6 with link time refere readelf -a libc-x.x.x.so | grep nl_langinfo,没有找到nl_langinfo相关的符号信息,就是当前的libc的库版本低。后改为5.4的,5.2 5.1 等都不行,忙活了一天都没结果,静下心想,方向可能错了,后想应是ARM内的lib/下的那个库的版本低了,后经几次测试,果然是这样,想想那提示,早就应该到呀,唉,谁叫我急呢
摘抄网上的一些信息
glibc的主目录一般有如下4类的库名:
本文以GLIBC2.2.3例:
1@实际的共享连接库如: glibc2.2.3的数学连接库是libm-2.2.3.so
libc2.2.3
2@主修订版本的符号连接库libc.so.6
libdl.so.2
3@与版本号无关联的库 libm.so
库中还需要动态连接器和其符号连接:
如:ld-2.2.3.so
ld-linux.so.2
一般ARM类型的是这样的
###找出你的应用程序所需要的库:
工具:LDD.这个不能实现跨平台的检查功能. ---就是不能用host 的ldd来检查我门ARM平台的应用程序的能力.
uClibc中的LDD具有跨越平台查阅的能力其名字是:arm-uclibc-ldd /busy/box
下图为:本人用的库的状况:
ld-2.2.5.so libmemusage.so libpthread.so.0
ld-linux.so.2 libnsl-2.2.5.so libqte.so
libBrokenLocale-2.2.5.so libnsl.so.1 libqte.so.2
libBrokenLocale.so.1 libnss_compat-2.2.5.so libqte.so.2.3
libSegFault.so libnss_compat.so.2 libqte.so.2.3.7
libanl-2.2.5.so libnss_dns-2.2.5.so libresolv-2.2.5.so
libanl.so.1 libnss_dns.so.2 libresolv.so.2
libc-2.2.5.so libnss_files-2.2.5.so librt-2.2.5.so
libc.so.6 libnss_files.so.2 librt.so.1
libcrypt-2.2.5.so libnss_hesiod-2.2.5.so libstdc++.so
libcrypt.so.1 libnss_hesiod.so.2 libstdc++.so.5
libdl-2.2.5.so libnss_nis-2.2.5.so libstdc++.so.5.0.4
libdl.so.2 libnss_nis.so.2 libthread_db-1.0.so
libgcc_s.so libnss_nisplus-2.2.5.so libthread_db.so.1
libgcc_s.so.1 libnss_nisplus.so.2 libutil-2.2.5.so
libjpeg.so libpcprofile.so libutil.so.1
libjpeg.so.62 libpng.so libz.so
libjpeg.so.62.0.0 libpng.so.3 libz.so.1
libm-2.2.5.so libpng.so.3.1.2.5 libz.so.1.2.1
libm.so.6 libpthread-0.9.so
摘要: 1.委派的实现过程。首先来看一下委派,委派其实就是方法的传递,并不定义方法的实现。事件其实就是标准化了的委派,为了事件处理过程特制的、稍微专业化一点的组播委派(多点委派)。下面举一个例子,我觉得把委派的例子和事件的例子比较,会比较容易理解。using System;class Class1{ delegate int MathOp(int i1,int i2); static void Main(...
阅读全文
摘要: 上次对这两个对象的了解太过于肤浅,这次再加深印象。HttpHandler 与 HttpModule 是对象加载的时机不同HttpModule 对象是在HttpApplication 对象初始化时一并载入的,这个时机是在本机开机后,第一个用户访问时一并加载的,而HttpHandler是触发时开始拦截触发事件.
阅读全文
摘要: 多次打包老出现说 "不要生成的错误" 经过在网上查找资料,终于找到了问题原来出自于C:\Program Files\Common Files\Microsoft Shared\MSI Tools\MergeMod.dll的版本不对,晕~~~~, 版本是1.20.1827.1,最新版是2.0.2542.0,
阅读全文
摘要: js 技巧(转)事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 e...
阅读全文
摘要: 原著:Bradley L. Jones原文:http://www.developer.com/net/net/article.php/2229511泛型是微软为C#语言增加的一个新的特性。尽管它还不是ECMA或ISO定义的C#语言规范中的一部分,但不久就会成为标准。泛型可以帮助你写出更具有可重用性的软件组件代码。它是数据的一种类型,包含有相同的代码;然而,参数的数据类型在每次使用时可以改变。另外,...
阅读全文