终于将nachos安装成功 写文一篇已示庆贺,自己的安装过程:
1. 使用Ubuntu 10.10安装
2. 由于自带gcc4.4,版本太高,卸载之
3. 网上下载3.4手动安装(这费了不少劲,最后还是选择的deb包自动安装……因为2.96没装上)
4. 安装Nachos4.1。make depend成功,没有提示错误,高兴,成功近在咫尺
5 make。n多错误出现。不过有人已经将错误解决方法贴出
在此引用(原作者未知):
“
可能碰到的问题(抄安装教程的)
在安装的过程中,由于g++版本兼容性的问题,可能在编译的时候出现以下的错误:
1.cc1plus: error: unrecognized command line option "-fwritable-strings"
解决方法:修改NachOS-4.1/code/build.linux/Makefile,第203行,将-fwritable-str
ings去掉,即:
CFLAGS = -ftemplate-depth-100 -Wno-deprecated -g -Wall $(INCPATH) $(DEFINES)
$(HOSTCFLAGS) –DCHANGED
2.在编译NachOS-4.1/code/lib/list.cc时可能会出现很多如下的错误:
../lib/list.cc: In member function ‘void SortedList<T>::Insert(T)’:
../lib/list.cc:240: error: there are no arguments to ‘IsEmpty’ that
depend on a template parameter, so a declaration of ‘IsEmpty’ must be
available
../lib/list.cc:240: error: (if you use ‘-fpermissive’, G++ will accept
your code, but allowing the use of an undeclared name is deprecated)
../lib/list.cc:241: error: ‘first’ was not declared in this scope
../lib/list.cc:242: error: ‘last’ was not declared in this scope
../lib/list.cc:243: error: ‘first’ was not declared in this scope
../lib/list.cc:251: error: ‘numInList’ was not declared in this scope
../lib/list.cc:255: error: ‘last’ was not declared in this scope
../lib/list.cc:258: error: ‘numInList’ was not declared in this scope
../lib/list.cc: In member function ‘void SortedList<T>::SanityCheck() const
’:
../lib/list.cc:341: error: ‘first’ was not declared in this scope
../lib/list.cc:341: error: ‘last’ was not declared in this scope
../lib/list.cc: In member function ‘void SortedList<T>::SelfTest(T*, int)’:
../lib/list.cc:371: error: there are no arguments to ‘RemoveFront’ that
depend on a template parameter, so a declaration of ‘RemoveFront’ must be
available
../lib/list.cc:374: error: there are no arguments to ‘IsEmpty’ that
depend on a template parameter, so a declaration of ‘IsEmpty’ must be
available
解决方法:修改NachOS-4.1/code/lib/list.cc文件,将错误信息中所出现的所有函数(如IsEmpty())和变量(first,last等)增加this指针,即:this->IsEmpty(),this->first,this->last等。 ”
将其提到的问题解决,再make