新聞中心

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

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

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

        軟件名稱
         glib
         
        功能簡述
         Glib是GNOME的一個基礎庫,提供基本的容器、算法、對象系統、OSAPI的適配器等。
         
        下載地址
         http://www.gtk.org
         
        軟件版本
         glib-2.8.0.tar.gz
         
        依賴關系
         默認
         
        前置條件
         源文件位置:$(WORK_DIR)/ glib-2.8.0
         

         

        2. 過程分析

        下載的穩定版本,configure已經存在,直接進行配置:

        [root@linux glib-2.8.0]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr

                         

        出現了如下錯誤:

        checking for growing stack pointer... configure: error: cannot run test program while cross compiling 

         

        原來configure不能為交叉編譯檢查glib_cv_stack_grows,glib_cv_stack_grows表示堆棧的增長方向。configure無法在目標機上運行測試程序,自然無法檢查,只好手工指定。順便看一下還哪些相關的變量不能檢查的,一起寫到cache文件中,并重新配置:

        [root@linux glib-2.8.0]# echo ac_cv_type_long_long=yes>$ARCH-linux.cache

        [root@linux glib-2.8.0]# echo glib_cv_stack_grows=no>>$ARCH-linux.cache

        [root@linux glib-2.8.0]# echo glib_cv_uscore=no>>$ARCH-linux.cache

        [root@linux glib-2.8.0]# echo ac_cv_func_posix_getpwuid_r=yes>>$ARCH-linux.cache

        [root@linux glib-2.8.0]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr --cache-file=$ARCH-linux.cache

         

        這回配置成功了,編譯:

        [root@linux glib-2.8.0]# make && make install

         

        編譯成功!

         

        3.  構建處方 

                glib.mk

        GLIB_DIR="glib-2.8.0"

         

        all: clean config build

         

        config:

            @cd $(GLIB_DIR) && 

            echo ac_cv_type_long_long=yes>$$ARCH-linux.cache && 

            echo glib_cv_stack_grows=no>>$$ARCH-linux.cache && 

            echo glib_cv_uscore=no>>$$ARCH-linux.cache && 

            echo ac_cv_func_posix_getpwuid_r=yes>>$$ARCH-linux.cache &&

            ./configure --host=$$ARCH-linux --prefix=$$ROOTFS_DIR/usr --cache-file=$$ARCH-linux.cache && 

            echo "config done"

            

        build:

            @cd $(GLIB_DIR) && 

            make && make install && 

            echo "build done"

            

        clean:

            @cd $(GLIB_DIR) && 

            if [ -e Makefile ]; then make distclean; fi && 

        echo "clean done"



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玛沁县| 海口市| 张北县| 赫章县| 嘉善县| 岫岩| 桃源县| 那曲县| 宜良县| 黔东| 多伦县| 霸州市| 衡东县| 南投县| 新巴尔虎右旗| 刚察县| 天峻县| 清水县| 山阴县| 昌江| 板桥市| 安顺市| 凯里市| 台前县| 合肥市| 柳林县| 井陉县| 富川| 南昌县| 化隆| 仙居县| 彭阳县| 上饶市| 尼木县| 彰武县| 明水县| 高要市| 德阳市| 博乐市| 伊通| 黄龙县|