Ubuntu下GCC 3.4与4.3共存及编译Bochs通过

忙活了2天,终于今晚获得重大突破,特发此文纪念~

OS艰深果然不是吹的,听了两节课,除了抱怨年轻的老师讲话不清楚,更多的是对lab1开始无语了。。我承认ICS学的不够好,不过看样子ICS学的好的也晕@@

言归正传,就记录一下环境配置过程吧

上学期的Ubuntu还在硬盘里,由于重装了Windows导致引导文件丢失,于是它就归隐了,前些天我怎么做grub都无法导出,于是干脆重装新氧的Ubuntu 9.04中文定制版,安装和使用都很顺利,可是OS的BT lab要求GCC3.4,而Ubuntu几乎都自带了GCC4以上...实在不想用虚拟机装Fedora 2这么老土的东西,屏幕也小得眼花。Bochs居然也要老版本的,人家官方已经推出2.41了,还要我们用2.26...

先去新立得查找GCC,发现可以安装GCC3.4,先选上再说,然后GCC4试图卸载,居然连带了2G的程序要一起卸载- -放弃吧。渐渐想起应该可以强制调用GCC3.4的,遂google之,貌似可以通过改path修改优先选择编译器,可是网上方法太杂,很多都没有详解,鼓捣了半天。最后还是从康哥那里询问到了最简单的修改link的办法,即将usr/bin/下的GCC链接改成对应GCC3.4的,ln -s GCC-3.4 GCC,再GCC -v查看,果然调用3.4成功~

然后编译Bochs,满屏幕的警告不提了,最后还是以错误结束。先解决x界面的错误,很简单,加上apt-get install xorg-dev这个图形化界面即可。接下来的错误比较麻烦,错误提示如下:

symbols.cc:143: 错误: ISO C++ 不允许声明无类型的‘hash_map’
symbols.cc:143: 错误: expected ‘;’ before ‘<’ token
symbols.cc:151: 错误: expected constructor, destructor, or type conversion before ‘<’ token
symbols.cc: In constructor ‘context_t::context_t(Bit32u)’:
symbols.cc:158: 错误: ‘map’在此作用域中尚未声明
symbols.cc: In static member function ‘static context_t* context_t::get_context(Bit32u)’:
symbols.cc:180: 错误: ‘map’在此作用域中尚未声明
make[1]: *** [symbols.o] 错误 1
make[1]:正在离开目录 `/home/baichaogang/Down/Bochs-2.3.7/bx_debug'
make: *** [bx_debug/libdebug.a] 错误 2

继续google,终于发现forum.Ubuntu论坛高人给出的解决方案,在configure+一堆命令后还要修改两个文件。具体修改参照htt 经测试9.04需要修改这两个文件,而8.04并不需要。
至此Bochs环境编译完成,T.T弯路走了不少,引以为戒!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwpsgx.html