日期:2014-05-16  浏览次数:20935 次

libstd
各位好,我在linux下开发程序的时候遇到这样一个问题。请看下面的链接的库。
[qlaiaqu@localhost Debug]$ ldd ydop 
  linux-gate.so.1 => (0x00acc000)
  libocci.so.10.1 => /usr/lib/oracle/10.2.0.4/client/lib/libocci.so.10.1 (0x00d43000)
  libboost_serialization.so.1.40.0 => /home/qlaiaqu/workspace/ydop/library/usrLibrary/boost1.4.0/boost/libboost_serialization.so.1.40.0 (0x00816000)
  libclntsh.so.10.1 => /usr/lib/oracle/10.2.0.4/client/lib/libclntsh.so.10.1 (0x00e3a000)
  libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00110000)
  libm.so.6 => /lib/libm.so.6 (0x00cc5000)
  libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x05ee3000)
  libc.so.6 => /lib/libc.so.6 (0x00b7f000)
  libpthread.so.0 => /lib/libpthread.so.0 (0x00cf4000)
  libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x001f9000)
  librt.so.1 => /lib/librt.so.1 (0x00d22000)
  libnnz10.so => /usr/lib/oracle/10.2.0.4/client/lib/libnnz10.so (0x002b2000)
  libdl.so.2 => /lib/libdl.so.2 (0x00cee000)
  libnsl.so.1 => /lib/libnsl.so.1 (0x004b8000)
  /lib/ld-linux.so.2 (0x00b5c000)
[qlaiaqu@localhost Debug]$ 
其中程序链接了libstdc++.so.5和libstdc++.so.6,这样导致了我的程序中出现下列错误:
*** glibc detected *** /home/qlaiaqu/workspace/ydop/Debug/ydop: double free or corruption (out): 0x098a02b8 ***

我想问的是,有没有方法可以使程序只使用libstdc++.so.6,我的另外一位同事机器上就只调用了libstdc++.so.6,并且程序没有出现问题。而我同事却不知道是怎么弄的。
非常感谢,正确答案的一定加分

------解决方案--------------------
make 参数中可以指定链接的lib
------解决方案--------------------
拭目以待 不过可能是lib引用不正确
------解决方案--------------------
MARK
------解决方案--------------------
专业的不懂,帮顶。
------解决方案--------------------
楼主莫非在机器上同时装了两套libstdc++的库?
------解决方案--------------------
make时自己设置链接库。