新聞中心

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

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

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

        .         過程分析

        因?yàn)槭莄vs版本,所以先要生成configure腳本,tslib提供了一個(gè)autogen.sh文件,自然是用autogen.sh去產(chǎn)生了。運(yùn)行:

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

         

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

        : bad interpreter: No such file or directory

         

        打開autogen.sh文件,發(fā)現(xiàn)了沒有任何錯(cuò)誤,猜想可能是一些不可見的非法字符引起的,用二進(jìn)制方式打開該文件,發(fā)現(xiàn)它是dos格式的。需要轉(zhuǎn)換成unix格式的。

         

        索性用dos2unix把整個(gè)目錄都轉(zhuǎn)一遍。另外發(fā)現(xiàn)沒有NEWS README AUTHORS 三個(gè)文件,為了避免出錯(cuò),產(chǎn)生三個(gè)空文件:

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

         

        重新運(yùn)行:

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

         

        一切OK!

         

        現(xiàn)在來做真正的配置:

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

         

        配置成功,但make時(shí),出現(xiàn)下列錯(cuò)誤:

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

        : undefined reference to `rpl_malloc'

         

        在當(dāng)前目錄查找了rpl_malloc,發(fā)現(xiàn)configure里有#define malloc rpl_malloc一行。分析configure 腳本相關(guān)的代碼,原來是ac_cv_func_malloc_0_nonnull引起的,OK我們不讓它檢查了,產(chǎn)生一個(gè)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.         構(gòu)建處方

        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"



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 徐闻县| 贺兰县| 石阡县| 阿勒泰市| 光山县| 云安县| 扎囊县| 阿瓦提县| 平泉县| 安吉县| 新巴尔虎左旗| 东方市| 瑞昌市| 乡宁县| 开远市| 泗阳县| 紫阳县| 新干县| 县级市| 拜泉县| 象州县| 伊吾县| 商丘市| 东源县| 汉阴县| 抚远县| 诸城市| 思茅市| 大荔县| 清苑县| 双城市| 牡丹江市| 尤溪县| 周口市| 巴彦县| 浦城县| 滨海县| 民丰县| 共和县| 德江县| 大安市|