Linux下GeekOS開發流程及錯誤解決

來源:互聯網
上載者:User

編譯GeekOS:

開啟終端,依次輸入下面三條命令。

cd ~/geekos-0.3.0/src/project0/build/ 注意:~不能少,~表示目前使用者的主目錄。makebochs

可能會出現的問題

1、第一次make的時候會出現這個錯誤../include/geekos/segment.h:43:5: error: ‘packed’ attribute ignored for field of type ‘uchar_t’ [-Werror=attributes]用
gedit ../include/geekos/segment.h 開啟segment.h檔案,把43行的uchar_t baseHigh        PACKED ;改成uint_t baseHigh    :8    PACKED ;然後重新make一下。

2、bochs第一次啟動的時候會出現>>PANIC<< .bochsrc:4: vgaromimage directive malformed.錯誤用
gedit .bochsrc 開啟.bochsrc 把vgaromimage: /export/home/daveho/linux/bochs-2.0.2/share/bochs/VGABIOS-lgpl-latest刪除,

把romimage: file=/export/home/daveho/linux/bochs-2.0.2/share/bochs/BIOS-bochs-latest, address=0xf0000改成
romimage:file=$BXSHARE/BIOS-bochs-latest 
3、然後把

floppy_command_delay: 500 ips:  1000000 newharddrivesupport: enabled=1

這三行刪除。
再啟動bochs就會有結果。

4、如果在~/geekos-0.3.0/src/project0/src/geekos裡面增加了一個c檔案,需要修改~/geekos-0.3.0/src/project0/build/Makefile,把增加的那個c檔案名稱添加在KERNEL_C_SRCS這個變數後面,如果只是修改了某個c檔案裡面的內容則不需要修改Makefile檔案。


5、做project1時可能會遇到這個錯誤,先會列印一個字串,然後出現一個Exception 13,這個錯誤是因為編譯器的最佳化選項的原因,把Makefile中的CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror 這一行改成 CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror -O0
,因為有的編譯器最佳化層級比較高,這裡的-O0(杠大歐零)表示不最佳化。然後還會有str1 str2未使用,driver未初始化等等,這是因為用了這個-Werror參數,這個參數的意思是警告當作錯誤處理,所以就停止編譯了。可以把-Werror去掉,或者直接該原始碼未使用的使用一下,未初始化初始化一下。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.