编译GeekOS:

打开终端,依次输入下面三条命令。

cd ~/geekos-0.3.0/src/project0/build/ 注意:~不能少,~表示当前用户的主目录。
make
bochs
可能会出现的问题

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去掉,或者直接该源代码未使用的使用一下,未初始化初始化一下。

Logo

更多推荐