+ -
当前位置:首页 → 问答吧 → 求教:在solaris下编译了gcc以后,链接32位库和64位库的困惑

求教:在solaris下编译了gcc以后,链接32位库和64位库的困惑

时间:2010-09-14

来源:互联网

求教各位大侠:
   
    我在x86下的Solaris10下,编译了gcc-4.5.1,编译为32位的文件。
    目前编译32位的程序都没有问题,但一旦加-m64 编译64位的程序,虽然可以完成编译。但执行这些程序的时候,就报错:

    ld.so.1: test-all: fatal: /opt/gcc/4.5.1/lib/libstdc++.so.6: wrong ELF class: ELFCLASS32
     
      我知道这个是默认链接了32位的运行时库,所以在编译64位程序的时候,我在makefile里面加了 -R /opt/gcc/4.5.1/lib/amd64,一时可以解决这个问题。

    但是这样还是有问题,一些已安装的程序(64位) 在运行时也报告:

      fatal:/opt/gcc/4.5.1/lib/libgcc_s.so.1 :wrong ELF Class,ELFCLASS32

     有没有什么办法,能够让系统自动的去判断链接32位库和64位运行时库啊,这个问题,搞得我很困惑,先谢谢各位了

作者: cafesun   发布时间: 2010-09-14

我自己来结贴吧,刚刚摸索出来了,在LD_LIBRARY_PATH变量中,增加64位运行时库的路径即可。

作者: cafesun   发布时间: 2010-09-14