在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

            1.         基本信息:

            軟件名稱

             TinyX
             
            功能簡述

              TinyX是一個針對系統(tǒng)設計的X Window,相對PC版的X Window而言,它占用的資源要少很多,服務器程序僅700多K,客戶端的動態(tài)庫約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
             
            依賴關系
             默認

            readline

            zlib

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

            2.  過程分析

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

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

              按照BUILD.txt里的建議,我們決定建立一個臨時目錄,在這個臨時目錄里編譯,避免破壞原始文件。實踐證明這個建議很有用,因為很少第一次編譯成功,重新編譯時不用再去解壓軟件包,可以節(jié)省不少時間。

            [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文件拷貝進來:

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

            編譯:

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

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

            /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)下列錯誤:

            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的內核,你可能要修改NR_KEYS的值為128,否則programs/Xserver/hw/tinyx/linux/keyboard.c里有內存越界問題,造成無法運行。

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

            3.         構建處方

            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 {{分頁}}

            #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不再難懂)


            評論


            相關推薦

            技術專區(qū)

            關閉