天儿真好,
在64位RHEL5盒子上,我们需要安装我们的32位应用程序 . 由于某些原因,我们需要使用gcc 4.0.3,所以我尝试首先在目标机器上安装该版本,就像我在32位目标平台上做了一千次 .
然而,这一次,我遇到了问题 . 我已经引导并将gcc 4.0.3转换为路径,让我们说/ foo . 像往常一样,我将LD_LIBRARY_PATH设置为指向包含共享库的目录:
$ echo $LD_LIBRARY_PATH
/foo/lib:/foo/lib/gcc/x86_64-unknown-linux-gnu/lib64:/foo/lib/gcc/x86_64-unknown-linux-gnu/4.0.3:/lib64
这些目录中确实有必要的库:
$ ls /foo/lib/gcc/x86_64-unknown-linux-gnu/lib64
libgcc_s.so libgcc_s.so.1
$ ls /foo/lib/gcc/x86_64-unknown-linux-gnu/4.0.3
32 crtendS.o libgcov.a libmudflap.so.0.0.0 libmudflapth.so.0.0.0 libstdc++.so.6.0.7
crtbegin.o include libmudflap.a libmudflapth.a libstdc++.a libsupc++.a
crtbeginS.o install-tools libmudflap.la libmudflapth.la libstdc++.la libsupc++.la
crtbeginT.o libgcc.a libmudflap.so libmudflapth.so libstdc++.so
crtend.o libgcc_eh.a libmudflap.so.0 libmudflapth.so.0 libstdc++.so.6
但是,如果我尝试创建一个简单的程序,ld找不到libgcc_s:
$ gcc-4.0 t.cc
/foo/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.0.3/../../../../x86_64-unknown-linux-gnu/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
为什么找不到libgcc_s.so库?
任何帮助赞赏!
斯特凡
2 回答
看来你的文件夹/ foo / lib / gcc / x86_64-unknown-linux-gnu / lib64里面没有包含libgcc_s.so . 为了实验,这样做:
gcc-4.0 -v t.cc -L / foo / lib / gcc / x86_64-unknown-linux-gnu / lib64