專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

uclinux編譯

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2010年12月30日   【字體:

今天終于開始了傳說(shuō)中的uclinux移植了。搞了一上午,才編譯出個(gè)默認(rèn)配置的image.bin,哎,太受打擊了~~

在網(wǎng)上找的一些內(nèi)核配置資料一點(diǎn)用也沒(méi)有,只會(huì)增加麻煩。編譯的時(shí)候,不是這里出錯(cuò),就是那里沒(méi)發(fā)現(xiàn)的,哎,~~ 最后還是在官網(wǎng)上找到一條路:除了配置符合廠商的板子外,其他全用默認(rèn)的配置~~結(jié)果編譯的時(shí)候還是出了兩個(gè)錯(cuò)誤。在用了3萬(wàn)2千1百9十9招g(shù)oogle之后,終于解決了,如下:

錯(cuò)誤1:

/usr/local/bin/arm-elf-ld.real: cannot open romfs.o: No such file or directory
    make[1]: *** [linux] Error 1
解決辦法
   cp ./linux-2.4.x/fs/romfs/romfs.o ./linux-2.4.x/

錯(cuò)誤2:
s/fs.o(.data+0x15f0): In function `sys_open':
/curret1/uClinux-dist/linux-2.4.x/fs/open.c:805: multiple definition of `romfs_file_operations'
romfs.o(.data+0x80):/curret1/uClinux-dist/linux-2.4.x/fs/romfs/inode.c:107:第一次在此定義
make[1]: *** [linux] 錯(cuò)誤 1
make[1]: Leaving directory `/curret1/uClinux-dist/linux-2.4.x'
make: *** [linux] 錯(cuò)誤 1

解決辦法
在 ~/uClinux-dist/linux-2.4.x/fs/romfs/inode.c的
static(這地方?jīng)]有加上) struct file_operations romfs_file_operations = {

    read: generic_file_read,

    mmap: generic_file_mmap,

    #ifdef MAGIC_ROM_PTR

開頭加上static 問(wèn)題就解決

    真是搞不懂,怎么會(huì)出這樣的錯(cuò)誤,而且自己還發(fā)現(xiàn)居然有一個(gè)文件里的函數(shù)少半邊括號(hào)的錯(cuò)誤

也不知道是怎么搞的,哎~~~

    總之吧,這個(gè)肯定是要花不少時(shí)候的  貌似生成的這個(gè)image.bin還運(yùn)行不了,再看看吧,要吃飯去了
 

關(guān)閉窗口

相關(guān)文章