中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 交叉編譯場(chǎng)景分析(arm-linux)(六)

        交叉編譯場(chǎng)景分析(arm-linux)(六)

        ——
        作者: 時(shí)間:2007-04-18 來源:http://blog.csdn.net/absurd 收藏

        1.         基本信息:

        軟件名稱

         TinyX
         
        功能簡(jiǎn)述

          TinyX是一個(gè)針對(duì)系統(tǒng)設(shè)計(jì)的X Window,相對(duì)PC版的X Window而言,它占用的資源要少很多,服務(wù)器程序僅700多K,客戶端的動(dòng)態(tài)庫(kù)約2M(看你需要而定)多。
         
        下載地址
         http://www.xfree86.org
         
        軟件版本
         XFree86-4.5.0-src-1.tgz

        XFree86-4.5.0-src-2.tgz

        XFree86-4.5.0-src-3.tgz

        XFree86-4.5.0-src-4.tgz

        XFree86-4.5.0-src-5.tgz

        XFree86-4.5.0-src-6.tgz

        XFree86-4.5.0-src-7.tgz
         
        依賴關(guān)系
         默認(rèn)

        readline

        zlib

        ncurses
         
        前置條件
         源文件位置:$(WORK_DIR)/xc
          

        2.  過程分析

          TinyX并不是一個(gè)獨(dú)立的軟件包,而是X Window的一種編譯配置。X Window采用的imake配置方式,與autoconf不一樣,你先要手工編譯配置文件。在xc/config/cf/README文件里,有對(duì)各種選項(xiàng)詳細(xì)的介紹。

          修改這些配置文件是一種比較繁瑣的事情,特別對(duì)于新手來說,往往要經(jīng)歷修改配置文件-編譯-失敗-再修改配置文件這個(gè)循環(huán)好幾次。即使是對(duì)于有經(jīng)驗(yàn)的人來說,一次搞定也并非那么容易。這個(gè)過程講起來比較冗長(zhǎng),這里就不再多說,具體的配置文件可以參考構(gòu)建處方。

          按照BUILD.txt里的建議,我們決定建立一個(gè)臨時(shí)目錄,在這個(gè)臨時(shí)目錄里編譯,避免破壞原始文件。實(shí)踐證明這個(gè)建議很有用,因?yàn)楹苌俚谝淮尉幾g成功,重新編譯時(shí)不用再去解壓軟件包,可以節(jié)省不少時(shí)間。

        [root@linux cross]# cd xc/config/util/ 

        [root@linux util]# make lndir

        [root@linux util]# cp lndir /usr/local/bin/

        [root@linux util]# cd -

        [root@linux cross]# mkdir armtinyx

        [root@linux cross]# cd armtinyx

        [root@linux armtinyx]# lndir ../xc/

        現(xiàn)在我們把配置文件和patch文件拷貝進(jìn)來:

        [root@linux armtinyx]# cp ../armtinyx.patch/* . -rf

        編譯:

        [root@linux armtinyx] make World DESTDIR=$ROOTFS_DIR 

        出現(xiàn)下列錯(cuò)誤:

        /usr/local/arm-linux/lib/gcc/arm-linux/3.4.2/../../../../arm-linux/sys-include/sys/io.h:38: error: conflicting types for 'inb'

        ../../../../../programs/Xserver/hw/xfree86/common/compiler.h:1452: error: previous definition of 'inb' was here

        /usr/local/arm-linux/lib/gcc/arm-linux/3.4.2/../../../../arm-linux/sys-include/sys/io.h:39: error: conflicting types for 'inw'

        編輯armtinyx/programs/Xserver/hw/xfree86/common/compiler.h,刪除outb之類的空函數(shù)。

        重新編譯:

        [root@linux armtinyx] make

        出現(xiàn)下列錯(cuò)誤:

        arm-linux-gcc: os/tiny/lbxio.o: No such file or directory

        [root@linux armtinyx] cd programs/Xserver/os/tiny 

        [root@linux armtinyx] make lbxio.o 

        [root@linux armtinyx] cd -

        [root@linux armtinyx] make

        [root@linux armtinyx] make install DESTDIR=$ROOTFS_DIR

        編譯成功!

        其它說明:

        l         若是2.6的內(nèi)核,你可能要修改NR_KEYS的值為128,否則programs/Xserver/hw/tinyx/linux/keyboard.c里有內(nèi)存越界問題,造成無法運(yùn)行。

        l         若運(yùn)行時(shí),發(fā)現(xiàn)觸摸屏不能使用,修改programs/Xserver/hw/tinyx/linux/tslib.c的數(shù)組TsNames,加入你使用的觸摸屏設(shè)備文件。若還是不行,檢查一下tslib需要的環(huán)境變量是否設(shè)置正確。 {{分頁(yè)}}

        3.         構(gòu)建處方

        l         armtinyx.mk

        ARMTINYX_PATCH_DIR=armtinyx.patch

        XC_DIR=xc

        all: clean config build

        config:

            cd xc/config/util && make lndir && cp -f lndir /usr/bin

            rm -rf $(ARMTINYX_DIR)

            mkdir $(ARMTINYX_DIR)

            cd $(ARMTINYX_DIR) && lndir ../xc

            cp -rvf $(ARMTINYX_PATCH_DIR)/* $(ARMTINYX_DIR)

            echo "config done"

            

        build:

            @cd $(ARMTINYX_DIR) &&

            make World DESTDIR=$$ROOTFS_DIR && make install &&

            cd programs/Xserver/os/tiny && make lbxio.o && cd -  &&

            make &&

            make install &&

            echo "build done"

        clean:

            rm -rf $(ARMTINYX_DIR)

            echo "clean done"

        l         armtinyx.patch/config/cf/cross.def

        #undef Arm32Architecture

        #undef i386Architecture

        #undef Arm32Architecture

        #undef Arm32Architecture

        #define Arm32Architecture

        #undef OptimizedCDebugFlags

        #define OptimizedCDebugFlags    -Os

        #define ServerCDebugFlags   -Os

        #undef StandardDefines

        #define StandardDefines     -Dlinux -D__arm__ -D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE

             -DX_LOCALE -DUSE_DYNAMIC_LC -DUSE_UTF8_LOADER -DUSE_DYNAMIC_LOADER

        #define PreIncDir

        #undef PostIncDir

        #undef CcCmd

        #define CcCmd arm-linux-gcc -I$(ROOTFS_DIR)/usr/include/ncurses -I$(ROOTFS_DIR)/usr/include

        #undef HasCplusplus

        #define HasCplusplus NO

        #undef CplusplusCmd

        #define CplusplusCmd NO

        #define DoRanlibCmd YES

        #define RanlibCmd arm-linux-ranlib

        #undef ExtraLoadFlags

        #define ExtraLoadFlags

        #define FbNoPixelAddrCode

        #undef TermcapLibrary

        #define TermcapLibrary -L$(ROOTFS_DIR)/usr/lib -lncurses

        #define NCursesLibName -L$(ROOTFS_DIR)/usr/lib -lncurses

        #undef LdPostLib

        #undef LdCmd

        #define LdCmd arm-linux-ld

        #undef ExtensionOSDefines

        #define ExtensionOSDefines

        #define ServerXdmcpDefines

        #define GzipLibrary -L$(ROOTFS_DIR)/usr/local/lib -lz

        #include <cross.rules>

        l         armtinyx.patch/config/cf/host.def

        #define KDriveXServer       YES

        #define TinyXServer     YES     

        #define XfbdevServer        YES 

        #define CrossCompiling      YES 

        #define ProjectRoot             /usr/X11R6

        #define NothingOutsideProjectRoot   YES {{分頁(yè)}}

        #define HasFreetype2        NO  

        #define HasFontconfig       NO

        #define HasLibpng       NO      

        #define HasZlib         NO      

        #define HasExpat        NO      

        #define BuildXprintClients  NO

        #define TouchScreen     YES

        #define HasTsLib        YES    

        #define BuildDocs       NO     

        #define BuildXF86DRI        NO 

        #define BuildGlxExt     NO     

        #define BuildOSMesaLib      NO 

        #define BuildLowMem     NO     

        #define BuildIPv6       NO     

        #define HasMTRRSupport          NO

        #define UseX86Emu               NO

        #define XF86INT10_BUILD         X86INT10_STUB

        #define BuildAppgroup           NO

        #define BuildDBE                NO

        #define BuildLBX                NO

        #define HasMTRRSupport          NO

        #define UseX86Emu               NO

        #define XF86INT10_BUILD         X86INT10_STUB

        #define BuildAppgroup           NO

        #define BuildDBE                NO

        #define BuildLBX                NO

        #define BuildFonts              YES

        #undef  BuildXF86RushExt

        #define BuildXF86RushExt        NO

        #undef  BuildRender

        #define BuildRender             YES

        #define UseRgbTxt               YES

        #define BuildFontServer         NO

        #define BuildClients            NO

        #define BuildFonts              YES

        #undef  BuildXF86RushExt

        #define BuildXF86RushExt        NO

        #undef  BuildRender

        #define BuildRender             YES

        #define UseRgbTxt               YES

        #define BuildFontServer         NO

        #define OmitSnfSupport          YES

        #define  XdecMultiDepthServer  NO

        #define  XsunServer            NO

        #define  Xsun24Server          NO

        #define  XsunMonoServer        NO

        #define  XsunLynxServer        NO

        #define  XSavageServer         NO

        #define  XIgsServer            NO

        #define  XTridentServer        NO

        #define  XchipsServer          NO

        #define  Xmach64Server         NO

        #define  Xi810Server           NO

        #define  XSis530Server         NO

        #define  XTrioServer           NO

        #define  XipaqServer           NO

        #define  XTS300Server          NO

        #define  XItsyServer           NO

        #define  XvesaServer           NO

        #define  XDarwinServer         NO

        #define XF86CardDrivers         fbdev

        #define XInputDrivers       mouse keyboard

         

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉