Centos7.0 64位编译安装Nachos4.1 32位以及搭建交叉编译环境从尝试到放弃系列(一)

来源:互联网 发布:智能手表推荐 知乎 编辑:程序博客网 时间:2024/06/06 06:40

写在前面

(标题一定要长长长)
虽然说是该系列之一,不过也仅此一篇。由于问题有好几个,我就不另开其他的文章记录了,全糅杂于此。

实验内容

在Linux上编译安装Nachos, 还有搭建交叉编译环境

实验环境

腾讯云主机 Centos7.0 64位,
gcc 4.8.5
Nachos 4.1

结果

只实现了在centos上编译安装Nachos,没能成功搭建
交叉编译环境 ค(TㅅT)


遇到的问题以及解决

1.make depend

fatal error: iostream.h no such file or directory

解决:

#include “iostream.h”

改为

#include “iostream”
using namespace std;

详情请看:C++ - fatal error: iostream.h no such file or directory [duplicate] - StackOverflow

2.make

g++: error: unrecognized command line option ‘-fwritable-strings’

解决:
修改NachOS-4.1/code/build.linux/Makefile,将-fwritable-strings去掉,即:

CFLAGS = -ftemplate-depth-100 -Wno-deprecated -g –Wall -fwritable-strings (INCPATH)(DEFINES) $(HOSTCFLAGS) –DCHANGED

CFLAGS = -ftemplate-depth-100 -Wno-deprecated -g -Wall (INCPATH)(DEFINES) $(HOSTCFLAGS) –DCHANGED

也可参考:
compiling - Scanalyze install - Ask Ubuntu

3.make
如果遇到了:
这里写图片描述

解决
修改NachOS-4.1/code/lib/list.cc文件,将错误信息中所出现的所有函数(如IsEmpty()等)和变量(first,last等)增加this指针,即:this->IsEmpty(),this->first,this->last等
当然不能盲目修改,可以边看它给的error信息边修改。
小Tips:
a. vim里,:set number可以显示行号
b. :256可以跳到256行(根据调试信息快速定位到有问题的那一行)
c. cd -可以切换回之前的目录,比如我之前在/usr/local目录,现在在/usr/local/ostest3目录下,那么我用cd -就能快速切回之前的/usr/local目录

4.依然是make ┑( ̄Д  ̄)┍

Error: invalid instruction suffix for `push’

这里给出两个参考:
a. c++ - Error: invalid instruction suffix for `push’ - Stack Overflow

然而我尝试了加–32去编译以后还是失败了:
这里写图片描述

它给的结果是

make : unrecognized option ‘–32’

有哪位小伙伴成功了的告诉我一下这个方法怎么用

补充
我那天上课做实验时用的是make –32, 昨天上百度查好像应该是gcc的时候加的参数。尴尬

b. Linux AT&T汇编错误:Error: invalid instruction suffix for `push’ - Linux操作系统:Ubuntu_Centos_Debian - 红黑联盟
不过这个方法是可行的~所以只要在它提示里的文件开头加上 .code32就行啦

最终效果图

这里写图片描述


搭建交叉编译环境时遇到的问题

tar解压出错:

gzip: stdin: unexpected end of file

参见:
tar解压出错:gzip: stdin: unexpected end of file的解决

原因及解决:

压缩文件不完整,需要删了重新下一次


(ノಠ益ಠ)ノ彡┻━┻ 反正搞了一天还是不知道怎么在64位机子上搭建Nachos的这个交叉编译环境,求大佬指教


最新进展

最终64位向乌班图32位屈服了。到交叉编译这里的./configure是可以顺利进行的!

1 0
原创粉丝点击