zoukankan      html  css  js  c++  java
  • QT显示中文 连接上文

    1.首先是建立Linux开发环境
    1.1.在windowsXP下安装博创公司提供的虚拟机软件VMware Workstation,版本为VMware-workstation-full-7.0.1-227600,安装完成后进行汉化,由于要覆盖文件,所以要先在任务管理器中结束所有有关VMware的进程,然后将汉化文件覆盖到VMware的安装目录,至此VMware虚拟机软件安装完成。
    1.2.虚拟机软件安装成功后,就开始安装Linux操作系统,这里我使用的Ubuntu10.04长期支持版,可以到Ubuntu的官方网站上下载,下载地址为:http://www.ubuntu.org.cn/desktop/get-ubuntu/download/或者http://releases.ubuntu.com/lucid/(第一个不行就使用第二个);

    下载完成后打开虚拟机,在起始页上点击新建虚拟机,然后选中Ubuntu镜像文件的路径,然后是输入用户名、下一步、最后是定制硬件,可以根据自己需要添加,这里我把内存调整为1G,额外添加了一个串口,最后完成开始自动安装,这个过程是全自动的,基本不需要手动操作,下面我们就是等待安装完成。(安装的快慢跟你的机器配置有关);

    安装完成,大概用了不到两个小时,但是在登录界面却无法使用键盘。

    解决方法:

    (1) 开户屏幕键盘功能 在上图开机界面在右下角单击小人图案,再单击“Universal Access Perferences”,

    点击“Universal Access Perferences”对话框,

    在对话框中选中“Use on-screen keyboard”(使用屏幕键盘),以开启屏幕键盘功能,这时会有一个屏幕键盘快速闪过;

    (2) 重新启动打开屏幕键盘输入密码开启屏幕键盘功能后重新启动系统,这时就可以通过上面的步骤打开屏幕键盘,输入相应的密码

    (3) 登录后键盘功能正常使用。

    注意在(1)步后没出现软键盘, 需要重启机器。

    (4)进入系统之后,要修改/etc/default/console-setup. 的文件内容 原文 XKBMODEL="SKIP" XKBLAYOUT="us" XKBVARIANT="U.S. English" XKBOPTIONS="" 改成 XKBMODEL="pc105" XKBLAYOUT="us" XKBVARIANT="" XKBOPTIONS="" 然后重启,这样在登入界面时就可能使用键盘了。

    这里我们使用root账户,在命令行输入:sudo passwd root,输入两次密码后添加root账户成功,重启,使用root账户登录,

    然后是设置软件源,首先备份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup,而后用gedit或其他编辑器打开: gedit /etc/apt/sources.list,到官方选中合适的源,这里我们选择163的源,具体为:

    deb http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse,

    替换掉文件中所有的内容保存编辑好的文件:,然后,刷新列表: 
    apt-get update
    终端设置小技巧 
    因为经常会用到终端:所以把终端加到右键菜单: 


    apt-get install nautilus-open-terminal


    至此我们的Linux操作系统基本安装成功。但是语言还是英文,大家可以根据自己喜好是否调整为中文,调整方法,打开system菜单下administration下的language support,出现语言配置对话框,然后你可以选中最下面的installl/removae language安装中文或者其他语言,在调整后重启系统起效!


    2.安装开发工具QT
    首先需要说明的是,我们把QT的安装分为两部分,第一、安装在LinuxPC机下开发的QT以及IDE开发工具QT Creator。第二、安装交叉编译的QTE以及移植QTE到博创star2410开发板,下面我们开始正式安装。


    2.1.安装LinuxPC机上的开发工具QT
    首先我们到QT的官方网站下载Linux下的QT版本,下载地址为:http://qt.nokia.com/downloads-cn,这里我们直接下载最新版本的Qt SDK for Linux/X11 32-bit** (370 Mb) (软件开发工具包)里面包括QT4.6.3以及QT IDE开发工具QT Creator,由于我们是直接下载编译好的二进制包,所以我们只需要更改一下文件的属性,变为可执行就行了,具体命令为:chmod +x qt-sdk-linux-x86-opensource-2010.04.bin,

    这样我们就能在文件的目录里执行./qt-sdk-linux-x86-opensource-2010.04.bin,然后就开始安装了。

    然后点击next、I accept the agreement、next、(默认安装路径为/opt/qtsdk-2010.04,你可以根据自己喜好更改路径,这里我们选择默认)

    、next、(在选择组件对话框里我们依然默认)next、(外部管理对话框,默认)next、(准备安装)next后开始安装,我们只需要等待就行,最后点击finish安装完成,

    我们会在桌面发现多了一个图标,这说明我们的QT以及Qt Creator安装成功,

    最后一步就是设置环境变量,具体步骤如下:

    使用编辑器打开配置文件 命令为:gedit ~/.profile ,

    在文件的最后添加export QTDIR=$PATH:/opt/qtsdk-2010.04/qt


    export PATH=$PATH:/opt/qtsdk-2010.04/qt/bin


    环境变量设置完成,重启系统,但是现在我们的QT还不能使用,

    因为我们的LinuxPC机没有安装标准C开发环境,最后再执行一条命令:

    apt-get install build-essential libncurses5-dev,

    至此我们的PC机QT开发工具就安装完成了,可以正常使用了。


    2.2.搭建QTE-arm环境并移植QTE以及tslib1.4到博创star2410开发板
    首先我们要先安装交叉编译工具链,这里我们使用的交叉编译器为博创公司提供的版本为arm-linux-gcc3.4.6,将arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2放到/root/song目录下,然后打开目录解压编译器,具体命令为:

    tar xjvf arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2 -C /usr/local/(注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。),这样我们就将编译器安装在了/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/下,然后设置环境变量,仍然是:

    gedit ~/.profile

    在文件最后添加:

    export PATH=$PATH:/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin,

    保存文件,然后执行:

    source ~/.profile是变量立即生效,

    然后在命令行下输入:

    arm-linux-gcc -v

    检查是否安装成功,安装成功则出现:

    Reading specs from /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/3.4.6/specs

    Configured with: /home/samba/armlinux/crosstool/crosstool-0.42/build/arm-linux/gcc-3.4.6-glibc-2.3.6/gcc-3.4.6/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux --with-headers=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/include --with-local-prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
    Thread model: posix
    gcc version 3.4.6

    否则可能是环境变量设置问题,仔细检查应该就能解决。
    交叉编译器安装成功后,我们就开始解压及编译触摸屏软件tslib1.4.tar.gz,具体步骤如下:打开文件所在目录:cd /root/song ,解压:tar xjvf tslib-1.4.tar.bz2,进入解压目录:cd tslib-1.4,修改脚本:gedit build.sh,原来的内容为:#/bin/sh
    export CC=arm-linux-gcc
    ./autogen.sh
    #./configure --prefix=/mnt/nfs/tslib1.4-install --host=arm-linux
    echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache 
    ./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/mnt/nfs/Trolltech/QtopiaCore-4.3.3/tslib1.4
    make

    make install
    修改后:#/bin/sh
    export CC=arm-linux-gcc
    ./autogen.sh
    echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache 
    ./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/usr/local/tslib
    make

    make install
    保存退出并执行:./build.sh开始编译并安装,中间没有出错,成功安装到了/usr/local/tslib目录下,tslib1.4编译成功。

    下面开始编译安装qte4.6.3-arm,首先到官方下载最新版的qte,版本为:qt-everywhere-opensource-src-4.6.3.tar.gz ,下载地址为:http://qt.nokia.com/downloads/embedded-linux-cpp,然后开始编译安装,
    具体步骤如下:进入文件所在目录:

    cd /root/song,

    解压:tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz,

    进入解压目录:

    cd qt-everywhere-opensource-src-4.6.3,

    修改错误文件:

    gedit src/3rdparty/freetype/include/freetype/config/ftconfig.h,

    将第330行修改为:

    "orr    %0, %0,%2, lsl #16/n/t"  /* %0 |= %2 << 16 */,

    防止出现如下错误:

    text/qfontengine_ft.cpp: In member function `bool QFontEngineFT::init(QFontEngine::FaceId, bool, QFontEngineFT::GlyphFormat)':
    text/qfontengine_ft.cpp:696: warning: converting to `int' from `qreal'
    {standard input}: Assembler messages:
    {standard input}:781: Error: register or shift expression expected -- `orr r3,r2,lsl#16'
    {standard input}:792: Error: register or shift expression expected -- `orr r2,r3,lsl#16'
    {standard input}:7752: Error: register or shift expression expected -- `orr r3,r0,lsl#16'
    {standard input}:7765: Error: register or shift expression expected -- `orr r1,r0,lsl#16'
    make[1]: *** [.obj/release-shared-emb-arm/qfontengine_ft.o] 错误 1
    make[1]:正在离开目录 `/root/song/qt-everywhere-opensource-src-4.6.3;

    然后开始配置configure:命令为:

    ./configure -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -qt-mouse-pc -no-gfx-qvfb -no-gfx-vnc -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -qt-mouse-tslib -no-glib -prefix /usr/local/Trolltech/qte4.6.3-arm -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -I/usr/local/tslib/include -L/usr/local/tslib/lib -v -D__ARM_ARCH_5TEJ__,

    然后输入o回车,再输入yes回车开始配置,配置成功提示:

    Qt is now configured for building. Just run 'make'.
    Once everything is built, you must run 'make install'.
    Qt will be installed into /usr/local/qte4.6.3-arm

    To reconfigure, run 'make confclean' and 'configure'.


    然后开始编译:make,需要等待一会,快慢视个人配置。大概半个小时左右make完毕,然后执行:

    make install,

    完成后qte就被安装在了/usr/local/qte4.6.3-arm下面,至此,qte4.6.3-arm编译安装成功。


    然后我们开始把qte移植到博创star2410开发板上,具体步骤为:

    1.复制tslib库以及ts目录,

    cp /usr/local/tslib/lib/libts* /usr/local/qte4.6.3-arm/lib/,cp -rf /usr/local/tslib/lib/ts /usr/local/qte4.6.3-arm/lib/,

    进入目录:

    cd /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib,

    继续拷贝库:

    cp libgcc_s.so.1 /usr/local/qte4.6.3-arm/lib/,cp librt.so.1 /usr/local/qte4.6.3-arm/lib/,cp libstdc++.so.6 /usr/local/qte4.6.3-arm/lib/,cp libz.so.1 /usr/local/qte4.6.3-arm/lib/,

    拷贝库完成,对于有些库文件,可以裁剪一下,命令如下:

    arm-linux-strip libstdc++.so.6,

    最后将/usr/local/qte4.6.3-arm/lib/中的所有文件打包,命令如下:

    tar czvf lib-new.tar.bz2 *,

    然后再将tslib校准程序移植,

    cd /usr/local/tslib/lib,拷贝需要的库文件,

    cp /usr/local/qte4.6.3-arm/lib/librt.so.1 .,cp /usr/local/qte4.6.3-arm/lib/libz.so.1 .,

    最后将整个tslib目录打包,命令如下:tar czvf touch.tar.bz2 *,

    最后将我们所有打包的文件以及前面交叉编译的MPlayer全部放到一个目录下,这里我建立了一个embed目录,将所有包放进去,解压整理,最终生成一个应用程序包,其中包括MPlayer,触摸屏校准程序,usb设备挂载,以及qte4.6.3,包的名字为:

    embed.tar.bz2。

    至此我们的移植以接近尾声,下面我们把编译好的应用程序包下载到star2410上,步骤如下:

    先在Linux下面使用minicom连接上板子,设置板子的IP使和主机在同一网段,命令如下:

    ifconfig eth0 192.168.88.189 broadcast 192.168.88.254 ,然后再执行inetd,是更改生效。

    然后在windows下使用FlashFXP软件匿名连接板子的IP,连接上后,将embed.tar.bz2传送到板子,很快就可以传完,然后在板子上,进入root目录,执行命令:

    mv /root/system/var/ftp/pub/embed.tar.bz2 .,然后解压程序包:

    tar xzvf embed.tar.bz2,这样root目录下就出现了我们的程序目录,首先我们进入touch目录进行触摸屏校准,我们先写touch.sh一个脚本方便程序执行,脚本内容如下:#bin/sh

    export QTDIR=$PWD
    export LD_LIBRARY_PATH=$PWD/lib:/lib
    export TSLIB_TSDEVICE=/dev/event0
    export TSLIB_PLUGINDIR=$PWD/lib/ts
    export TSLIB_CONSOLEDEVICE=none
    export QT_TSLIBDIR=$PWD/lib
    export TSLIB_CONFFILE=$PWD/etc/ts.conf
    export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
    export QWS_MOUSE_PROTO=tslib:/dev/event0
    export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
    /root/touch/bin/ts_calibrate
    /root/touch/bin/ts_test
    保存退出,执行脚本:./touch.sh,出现如下错误:No raw modules loaded.                                                          
    ts_config: Success                                                              
    No raw modules loaded.                                                          
    ts_config: Success
    解决方法:vi etc/ts.conf,将文件中第二行# module_raw input前面的#号去掉,然后在执行脚本,屏幕上出现校准程序,点击十字架开始校准,至此,tslib1.4移植成功!
    最后我们进入qte4.6.3目录中,同样我们也写一个脚本方便程序运行,脚本qt.sh内容如下:export QTDIR=$PWD
    export LD_LIBRARY_PATH=$PWD/lib:/lib
    export QTDIR=$PWD
    export TSLIB_TSDEVICE=/dev/event0
    export TSLIB_PLUGINDIR=$PWD/lib/ts
    export TSLIB_CONSOLEDEVICE=none
    export QT_TSLIBDIR=$PWD/lib
    export TSLIB_CONFFILE=$PWD/etc/ts.conf
    export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
    export QWS_MOUSE_PROTO=tslib:/dev/event0
    export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
    export QT_QWS_FONTDIR=$PWD/lib/fonts
    export LANG=zh_CN
    export QWS_DISPLAY="LinuxFb:mmWidth160:mmHeight120:0"
    /root/qte4.6.3/bin/demo -qws
    保存退出,然后执行:./qt.sh
    出现以下错误,并且触摸屏不能使用:No raw modules loaded.                                                          
    QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or di'
    Please check your tslib installation!
    解决方法:还是将etc/ts.conf文件中的第二行前面的#号去掉,保存退出,在执行./qt.sh,成功,无任何提示,屏幕显示我们的例子,并且触摸屏使用正常,至此,我们的qte4.6.3、tslib1.4的编译安装以及移植到博创的star2410板子上的工作全部完成!

  • 相关阅读:
    SQL Server, Timeout expired.all pooled connections were in use and max pool size was reached
    javascript 事件调用顺序
    Best Practices for Speeding Up Your Web Site
    C语言程序设计 使用VC6绿色版
    破解SQL Prompt 3.9的几步操作
    Master page Path (MasterPage 路径)
    几个小型数据库的比较
    CSS+DIV 完美实现垂直居中的方法
    由Response.Redirect引发的"Thread was being aborted. "异常的处理方法
    Adsutil.vbs 在脚本攻击中的妙用
  • 原文地址:https://www.cnblogs.com/zhugeanran/p/9110387.html
Copyright © 2011-2022 走看看