久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

cygwin中建立交叉編譯器的重要環(huán)節(jié)

 軒轅雨 2007-05-30

這篇文章雖然說的不是很詳細(xì),,但是我能找到的最詳細(xì)的關(guān)于CYGWIN的安裝文章了,。


 在嵌入式系統(tǒng)中,由一個(gè)源文件變成最終可執(zhí)行的二進(jìn)制文件,,要經(jīng)過三個(gè)過程,,即編譯,鏈接和重新定位,,通過編譯或者匯編工具,,將 源代碼變成目標(biāo)文件,由于目標(biāo)文件往往不止一個(gè),,所以還需要鏈接工具將它們鏈接成另外一個(gè)目標(biāo)文件,,可以稱其為“可重定位程序”。結(jié)果定址工具,,將“可重 定位程序”變成最終可執(zhí)行文件,。
一般的嵌入式系統(tǒng)應(yīng)用程序的開發(fā),通常采用的是主從模式,,通過串口或者網(wǎng)口,,使目標(biāo)機(jī)和宿主機(jī)相連接。通常來說,, 編譯器,,連接器和定址器都是在宿主機(jī)上(一般是pc機(jī),對于嵌入式開發(fā)而言,,還都是運(yùn)行Linux操作系統(tǒng)的pc)運(yùn)行的,,而最終經(jīng)過編譯-鏈接-重新定 位所得到的二進(jìn)制可執(zhí)行文件卻都是在目標(biāo)機(jī)上運(yùn)行的,所以我們把這種編譯過程稱為“交叉編譯”,。
常規(guī)的開發(fā)嵌入式系統(tǒng)的應(yīng)用程序都是在Linux pc上進(jìn)行開發(fā),,然而由于開發(fā)者自身硬件條件受到限制或者是所應(yīng)用的其他一些軟件的制約,,不得不在windows下開發(fā)的時(shí)候,,就必須找到適合于自己目標(biāo) 硬件平臺的交叉編譯器。但是苦于目前網(wǎng)上討論在windows下開發(fā)嵌入式系統(tǒng)應(yīng)用程序的資料比較少,使許多象我這樣的初學(xué)者因找不到在windows下 使用的編譯器而耽誤許多寶貴時(shí)間,,課題遲遲不能進(jìn)展,。
經(jīng)過5天的長假和網(wǎng)上各路高手的指點(diǎn),現(xiàn)將在windows下生成交叉編譯器的大體步驟寫出來,,供初學(xué)者參考,,對于高手可能實(shí)在是小菜一碟,本文可能實(shí)屬班門弄斧之作^_^,。
本文針對的目標(biāo)機(jī)為s3c4510b,,嵌入式操作系統(tǒng)為uClinux,宿主機(jī)為windows2000 professional PC,。
因 為要在windows下去開發(fā)運(yùn)行在嵌入式系統(tǒng)中的應(yīng)用程序,,首先要有一個(gè)能夠模擬linux/unix環(huán)境的軟件,推薦大家去下載安裝cygwin(對 于選項(xiàng)不太了解的朋友,,建議選擇全部安裝),,它對于學(xué)習(xí)linux/unix操作環(huán)境,或者從unix到windows的應(yīng)用程序移植,,尤其是使用gnu 工具在windows上進(jìn)行嵌入式系統(tǒng)開發(fā),,非常有用,好處多多 J,。具體的用法大家可以去它的網(wǎng)站看看,,E文不好的朋友,可以看看志祥版斑竹 yansm大俠寫的cygwin使用指南,,對 cygwin有個(gè)大致的了解,。(我想這也就足夠了吧J)。
   安裝后cygwin后,,大家就可以到這個(gè)網(wǎng)站http://www./pub/uClinux/uclinux-elf-tools/tools-20030314去下載最新的源碼包,,(可以把所有的東東都下載下來,這里面最重要的應(yīng)該是build-uclinux-tools.sh這個(gè)腳本文件,。)供后面制作交叉編譯器使用,。
   在開始之前,請大家打開我們前面安裝的cygwin.bat在第一行后加入set CYGWIN=title ntea,,這是因?yàn)閏ygwin 啟動批處理文件要啟動unix文件系統(tǒng)模擬,。運(yùn)行cygwin,在根目錄下輸入,cd bin
        mv sh.exe sh-original.exe
         ln –s bash.exe sh.exe
現(xiàn)在對cygwin的修改搞定,。(有關(guān)修改問題大家可以看那個(gè)腳本給出的一個(gè)文檔,,www./pub/uclinux/archive/8306.html, 幫助很大,,因?yàn)檫@個(gè)文檔對一些地方的修改做了非常詳細(xì)的描述,,大家仔細(xì)看看,,按著進(jìn)行相應(yīng)改動就可以了,但是有些步驟因?yàn)橛晌覀儸F(xiàn)在的patch就可以實(shí) 現(xiàn)的,,大家就可以不必修改,,由補(bǔ)丁程序自動完成。我在這里不詳細(xì)闡述,,在下面,,我只寫其他沒有說到的一些地方)開始我們的建立交叉編譯器的重要環(huán)節(jié)啦! ^_^
我用的是那個(gè)臺灣網(wǎng)站mac.os.nctu.edu.tw網(wǎng)站的uclinux-samsung-20020318.tar.gz,,把它 download到裝有cygwin的目錄下,,進(jìn)行解壓,tar xvzf uclinux-samsung-20020318.tar.gz,就會自動生成一個(gè)名為uClinux-Samsung的目錄,,主要這個(gè)解包過程可能會 出錯(cuò),,但是沒關(guān)系,leave the error alone,,不用管它的,。(為了省事,我們還可以直接把在linux pc上配置好的uclinux的內(nèi)核考到cygwin下來,,否則你還需要在cygwin下對內(nèi)核進(jìn)行配置)
那個(gè)我前面說得非常重要的腳本文件中,,對于一些變量(針對路徑定義的)我們應(yīng)該根據(jù)自己軟件所在的具體位置進(jìn)行相應(yīng)的修改,將CYGWIN那個(gè)變量前的#去掉,。還有下面的一些非常主要的修改
.tar zxvf elf2flt-20030314.tar.gz
cd ..
  vi elf2flt-cygwin-020612.patch
  刪除除了elf.h外的patch項(xiàng)目
  patch -p0 <elf2flt-cygwin-020612.patch
tar zxvf gcc-2.95.3.tar.gz

  vi gcc-2.95.3/gcc/Makefile.in
  change:
   info: cpp.info gcc.info lang.info
  to:
   info: cpp.info lang.info

  tar zcvf gcc-2.95.3.tar.gz gcc-2.95.3
進(jìn)入uclibc/extra/gcc-uclibc刪掉gcc-uclibc.c的 #include <libgen.h>
打開 Makefile(該Makefile 也是在uclibc/extra/gcc-uclibc目錄下)
gcc-uClibc: gcc-uClibc.h gcc-uClibc.c
$(HOSTCC) $(HOSTCFLAGS) -Wl,-s gcc-uClibc.c -o $(TARGET_ARCH)-uclibc-gcc
在最后面加入 –liberty
在/usr/include/sys/reent.h 732到741行,,除了# define _REENT _impure_ptr外,全部注釋掉
現(xiàn)在就可以運(yùn)行腳本命令啦~~,,經(jīng)過上面的改動后,,應(yīng)該是沒有什么問題了,整個(gè)build過程大約有5-6個(gè)小時(shí)吧,,因?yàn)槲以谧龅倪^程中曾經(jīng)遇到了好幾次錯(cuò)誤,,所以進(jìn)行了好幾次的continue。如果大家成功build,,就會出現(xiàn)
--------------------------------------------------------
Build successful !
--------------------------------------------------------
的字樣,,那么恭喜你,你已經(jīng)離成功只有一步之遙了
現(xiàn)在進(jìn)入/usr/local/arm-elf/bin,,運(yùn)行mv ld.exe ld
ok,now u have succeeded in building the cross compiler. Congratulations!
現(xiàn)在到/usr/local/bin下面是不是看到了企盼已久的arm-elf開頭的各種工具^_^,,用這些工具我們就可以在windows下像在linux中一樣開發(fā)我們的用戶應(yīng)用程序了。
   以上是我制做交叉編譯器時(shí)采用的方法,,希望能夠?qū)ζ渌臀乙粯觿側(cè)腴T的朋友一些幫助,,在這個(gè)過程中,我得到了21IC論壇高手tpu的極大的幫助,,沒有他也就沒有本文,,在這里向tpu高手表示深深的感謝,。 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多