当前位置: 技术问答>linux和unix
cygwin下交叉编译nachos-4.1
来源: 互联网 发布时间:2016-08-30
本文导语: 近日在学习操作系统,接触了nachos这个开源操作系统,自己安装了cygwin来尝试交叉编译它,可是在 建立格式文件转换程序coff2noff 该程序将coff格式转换为noff格式 1)cd ~/NachOS-4.1/coff2noff 2)./configure 3)make 时出错 $ ...
近日在学习操作系统,接触了nachos这个开源操作系统,自己安装了cygwin来尝试交叉编译它,可是在
建立格式文件转换程序coff2noff
该程序将coff格式转换为noff格式
1)cd ~/NachOS-4.1/coff2noff
2)./configure
3)make
时出错
$ make
gcc -g -O2 -DRDATA -DHAVE_CONFIG_H -I@top_dir@ -c -o coff2noff.o coff2noff.c
coff2noff.c:138: error: conflicting types for ‘malloc’
make: *** [coff2noff.o] Error 1
coff2noff.c部分源代码是这样的
大家有研究过nachos吗?请大家帮我看看这个问题好吗?或者说说自己研究nachos的心得,谢谢了!
建立格式文件转换程序coff2noff
该程序将coff格式转换为noff格式
1)cd ~/NachOS-4.1/coff2noff
2)./configure
3)make
时出错
$ make
gcc -g -O2 -DRDATA -DHAVE_CONFIG_H -I@top_dir@ -c -o coff2noff.o coff2noff.c
coff2noff.c:138: error: conflicting types for ‘malloc’
make: *** [coff2noff.o] Error 1
coff2noff.c部分源代码是这样的
#define ReadStruct(f,s) Read(f,(char *)&s,sizeof(s))
extern char *malloc(); //138行
char *noffFileName = NULL;
/* read and check for error */
void Read(int fd, char *buf, int nBytes)
{
if (read(fd, buf, nBytes) != nBytes) {
fprintf(stderr, "File is too shortn");
unlink(noffFileName);
exit(1); //
}
}
大家有研究过nachos吗?请大家帮我看看这个问题好吗?或者说说自己研究nachos的心得,谢谢了!
|
不知LZ是在什么环境下使用NACHOS,以下是我在linux下使用nachos做课程设计时的一些帮助文档,希望能帮上LZ的忙:
1. 把下载的交叉编译工具(mips-decstation.linux-xgcc.tar.gz)放到 / 目录下,即根目录下然后用tar -zvxf 命令解压即可。
必须放到根目录下,因为压缩包里面包含了/usr/local的目录层次。(也可以将之放到其他目录下解压,然后把解压之后的/usr/local目录下的所有东西拷贝到/usr/local下)
2. 另外还需要编译测试程序转换工具,进入 nachos/coff2noff
3. 运行 ./configure
4. make 即可。
5. 现在进入/usr/local/nachos/code/test目录编译测试用例,检查交叉编译器是否安装正确
6. 执行make
7. 如果出现错误信息则vi Makefile.dep,按以下方式修改
CPP = /usr/local/nachos/lib/gcc-lib/decstation-ultrix/2.95.2/cpp
#CPP = /usr/local/nachos/current/lib/gcc-lib/decstation-ultrix/2.7.2.1/cpp
GCCDIR = /usr/local/nachos/bin/decstation-ultrix-
#GCCDIR = /usr/local/nachos/current/bin/decstation-ultrix-
8. 保存后执行make再次测试
1. 把下载的交叉编译工具(mips-decstation.linux-xgcc.tar.gz)放到 / 目录下,即根目录下然后用tar -zvxf 命令解压即可。
必须放到根目录下,因为压缩包里面包含了/usr/local的目录层次。(也可以将之放到其他目录下解压,然后把解压之后的/usr/local目录下的所有东西拷贝到/usr/local下)
2. 另外还需要编译测试程序转换工具,进入 nachos/coff2noff
3. 运行 ./configure
4. make 即可。
5. 现在进入/usr/local/nachos/code/test目录编译测试用例,检查交叉编译器是否安装正确
6. 执行make
7. 如果出现错误信息则vi Makefile.dep,按以下方式修改
CPP = /usr/local/nachos/lib/gcc-lib/decstation-ultrix/2.95.2/cpp
#CPP = /usr/local/nachos/current/lib/gcc-lib/decstation-ultrix/2.7.2.1/cpp
GCCDIR = /usr/local/nachos/bin/decstation-ultrix-
#GCCDIR = /usr/local/nachos/current/bin/decstation-ultrix-
8. 保存后执行make再次测试
|
malloc 函数有冲突,是不是编译与被编译系统在这个函数上存在不兼容呢?
|
看看readme帮助文档,再编译吧。