Solaris 8中库文件libstdc++.so.2.10.0 缺失的解决

17 篇文章 0 订阅
6 篇文章 0 订阅

1 问题的提出

我有一个二进制程序GraphGen,在Solaris 8 SPARC 操作系统下运行得到的错误提示如下:
       # ./GraphGen
       ld.so.1: ./GraphGen: fatal: libstdc++.so.2.10.0: open failed: no such file or directory
显而易见,这个错误产生的原因是在当前的操作系统中缺失共享库文件libstdc++.so.2.10.0。该库文件是GNU gcc 编译器中含有的一个文件,而gcc 编译器在Solaris 8 SPARC 中并不是默认安装的,只有安装相应版本的gcc 编译器,该库文件才会附带安装上。

2 解决方案

按照上面的思路,为了补上缺失的库文件,我试着安装了几个不同版本的gcc 编译器,得到的结论如下:较新版本的gcc-3.4.6-sol8-sparc-local.gz 安装后,在其中的/usr/local/lib 中并不含有libstdc++.so.2.10.0 库文件;只有安装较旧版本的gcc 2.95.x 系列的编译器才会具备libstdc++.so.2.10.0 库文件。下面讲解gcc2.95.x 系列编译器的安装方法。
    步骤如下:
    1. 从网站http://ftp.ussg.iu.edu/solaris/freeware/sparc/8/ 上面下载文件gcc-2.95.1-sol8-sparc-local.gz,即gcc 2.95.1版本的编译器(你也可以选择其他版本的编译器,只要符合     gcc 2.95.x 即可)。
    2. 将上述安装文件放到某个文件夹下,执行命令
                  gunzip gcc-2.95.1-sol8-sparc-local.gz
        你会发现在那个文件夹下出现一个解压缩的文件gcc-2.95.1-sol8-sparc-local。
    3. 执行命令安装gcc 2.95.1 编译器
                pkgadd -d gcc-2.95.1-sol8-sparc-local
       在安装的过程中,如果系统中先前没有文件夹/usr/local/lib 等相关的文件夹,会询问你是否建立这些文件夹,回答y 即可。安装结束后,会提示安装成功,如图1。

Figure 1: gcc 2.95.1 编译器安装和设置过程截图
    4. 上面步骤都是在root 用户下执行的操作,而root默认的shell 是sh;接下我们还需要设置环境变量。设置环境变量的命令需要在bash 下执行,所以我另外新建了一个用户cgz,设置它的默认的shell 为bash (关于如何在Solaris 8 SPARC 下新建用户及设置默认的shell,请参见前面的博文)。退出当前root用户,改用cgz用户登录,执行如下命令:
                  export PATH=$PATH:/usr/local/bin
                  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
然后,执行命令gcc -v 来验证设置环境变量是否成功。所有这些操作,请参见图1。

    执行完上面的步骤后,libstdc++.so.2.10.0 库文件缺失的问题就自然而然地解决了。

3 顺利执行程序GraphGen

在Solaris 8 SPARC 系统下的Terminal 中输入命令GraphGen -help,该命令成功执行。这就证明了程序GraphGen可以顺利运行了,如图2。我的心中有了些许的成就感。Have a fun!

Figure 2: 成功运行程序GraphGen

4 致谢

非常感谢http://ftp.ussg.iu.edu/solaris/freeware/sparc/8/ 提供的gcc 2.95.1 编译器安装包,因为www.sunfreeware.com 下已不在提供安装包服务,转到了另外一个收费的网站打理;非常感谢博文《Rose RealTime: rtrun: fatal: libstdc++.so.2.10.0: open failed》(http://www-01.ibm.com/support/docview.wss?uid=swg21191467)和《Solaris下gcc安装》 (http://blog.csdn.net/sipsir/article/details/3973705)提供的思路,让我能够顺利解决这个问题;同时也感谢大量的也该问题相关的从Google里搜索出来的帖子,虽然它们不能直接解决我所面临的问题,但促进了我的思考,让我一步步地向目标迈进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值