在第4步配置时,我选用的enable-languages参数是--enable-languages=g77,c,c++。因为objc我编译时也通不过,因为不用就直接去掉拉。
最后一步库路径设置时,用export LD_LIBRARY_PATH=/home/allen/Programs/gcc-3.4.6/lib,即将LD_LIBRARY_PATH设置为你自己新安装的库目录。但即使每次启动时都设置此环境变量,有些情况下还是会找不对库。最后将/home/allen/Programs/gcc-3.4.6/lib(用你的库目录替换)加到文件/etc/ld.so.conf的最开始,然后运行/sbin/ldconfig将新配置写入cache。OK,这时候你的g77就可以正常的编译程序了。
但这时候新的问题又来了。由于libstdc++.so.6的版本冲突问题,即系统中的其它需要此库的程序也会先找到在你新指定的库目录下的低版本文件,而使这些程序不能使用。症状就是新立得也不能用了,也打不开ntfs的分区了,等等。把文件/etc/ld.so.conf中新加的目录去掉,重新运行/sbin/ldconfig。如果你设置了LD_LIBRARY_PATH,unset LD_LIBRARY_PATH.重新登录,果然一切又都正常了。当然g77就不能用了。如果能让不同的程序去找不同版本的库就好了。(期待有更好的方案......)
管不了那么多了,设置好库目录,先把我的东西编译了再说。编译运行EGSnrc有一些小问题,但那是EGSnrc自己的问题,已经不属于在这里讨论的范畴了。