娱天乐 / Oracle / Oracle 与libstdc++.so

0 0

   

Oracle 与libstdc++.so

2014-08-28  娱天乐

近日,用到Oracle10.2.0.2编译一个程序,要把Oracle更新到Oracle10.2.0.4,没想到居然遇到了问题,

/usr/bin/ld: warning: libstdc++.so.5, needed by /home/oracle/OraHome1/lib/libocci.so, may conflict with libstdc++.so.6

难道Oracle10.2.0.4的会依赖与低版本的标准C++库,开始有点不相信,不过,适用ldd命令之后,傻眼了,

ldd 10.2.0.2的结果

[root@localhost lib]# ldd libocci.so.10.1
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x004c8000)
        libm.so.6 => /lib/tls/libm.so.6 (0x00934000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00d74000)
        libc.so.6 => /lib/tls/libc.so.6 (0x00111000)
        /lib/ld-linux.so.2 (0x0043e000)

ldd 10.2.0.4的结果

[root@localhost lib]# ldd libocci.so.10.1
ldd: warning: you do not have execution permission for `./libocci.so.10.1'
./libocci.so.10.1: /usr/lib/libstdc++.so.5: version `CXXABI_1.2' not found (required by ./libocci.so.10.1)
./libocci.so.10.1: /usr/lib/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by ./libocci.so.10.1)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x00111000)
        libm.so.6 => /lib/tls/libm.so.6 (0x00c2e000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x001dc000)
        libc.so.6 => /lib/tls/libc.so.6 (0x009a5000)
        /lib/ld-linux.so.2 (0x0043e000)

果然,高一点版本的oracle居然依赖libstdc++.so.5 ,程序和所用的包都是在libstdc++.so.6上的,重新编译所有的包是不可能的。

最后得到接个解决方按:

1)  downgrade the oracle to 10.2.0.2.

2)  Append the libstdc++.so.5 to package, and use command “ cd /usr/lib;      ln /opt/webex/imds/lib/so/libstdc++.so.5.0.7  libstdc++.so.5”

      By this way, when compiling, compiler will report : /usr/bin/ld: warning: libstdc++.so.5, needed by /home/oracle/OraHome1/lib/libocci.so, may conflict with libstdc++.so.6

       I am still not sure whether will affect the action of program. Need run for a period to test.

3)  Build all library which imds is using, include TP, WDMS, Jabber decrypt. It is very hard and painful.

4) Upgrade oracle to 11

个人认为,方案4会更好一些。

方案2在尝试中,根据调查,最好不要在一个程序中同时依赖 libstdc++.so.5和libstdc++.so.6。

如果同时依赖这两个个库,结果,呵呵难以预料。没错还好,有错的话,你就很难找到原因了!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章
    喜欢该文的人也喜欢 更多