新聞中心

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

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

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

        .         過程分析

        因為是cvs版本,所以先要生成configure腳本,tslib提供了一個autogen.sh文件,自然是用autogen.sh去產生了。運行:

        [root@linux tslib]# ./autogen.sh

         

        出現了如下錯誤:

        : bad interpreter: No such file or directory

         

        打開autogen.sh文件,發現了沒有任何錯誤,猜想可能是一些不可見的非法字符引起的,用二進制方式打開該文件,發現它是dos格式的。需要轉換成unix格式的。

         

        索性用dos2unix把整個目錄都轉一遍。另外發現沒有NEWS README AUTHORS 三個文件,為了避免出錯,產生三個空文件:

        [root@linux tslib]# touch NEWS README AUTHORS。

         

        重新運行:

        [root@linux tslib]# ./autogen.sh

         

        一切OK!

         

        現在來做真正的配置:

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

         

        配置成功,但make時,出現下列錯誤:

        ts_test.o(.text+0x218): In function `main':

        : undefined reference to `rpl_malloc'

         

        在當前目錄查找了rpl_malloc,發現configure里有#define malloc rpl_malloc一行。分析configure 腳本相關的代碼,原來是ac_cv_func_malloc_0_nonnull引起的,OK我們不讓它檢查了,產生一個cache文件arm-linux.cache,欺騙configure:

        [root@linux tslib]# echo "ac_cv_func_malloc_0_nonnull=yes" >$ ARCH -linux.cache

        [root@linux tslib]# ./configure --prefix=$(ROOTFS_DIR)/usr --host=$ ARCH -linux --cache-file=$ ARCH -linux.cache

         

        配置成功后,重新編譯一下,OK!

         

        3.         構建處方

        l         tslib.mk

        TSLIB_DIR="tslib"

         

        all: clean config build

         

        config:

            @cd $(TSLIB_DIR) && find * -exec dos2unix {} ; && 

            touch NEWS README AUTHORS && 

            ./autogen.sh && 

            echo "ac_cv_func_malloc_0_nonnull=yes" >$$ARCH-linux.cache && 

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

            echo "config done"

         

        build:

            @cd $(TSLIB_DIR) && 

            make && make install && 

            echo "build done"

        clean:

            @cd $(TSLIB_DIR) && 

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

        echo "clean done"



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵川县| 安龙县| 黑水县| 应城市| 灯塔市| 新兴县| 土默特左旗| 阳新县| 洛扎县| 凤城市| 遂川县| 巴彦县| 乐陵市| 乐山市| 会泽县| 繁峙县| 丘北县| 阿荣旗| 广平县| 黎城县| 博兴县| 湖口县| 阿尔山市| 遂宁市| 资溪县| 东乌珠穆沁旗| 玉田县| 宣威市| 永康市| 刚察县| 星子县| 白水县| 乡宁县| 丹江口市| 客服| 大城县| 河间市| 肥西县| 泰兴市| 清流县| 丹阳市|