在ubuntu 11.04上自定义构建的gcc 4.6.0链接错误的libstdc ++

时间:2011-04-19 15:21:49

标签: gcc libstdc++

我的自定义内置gcc 4.6.0,安装在我的主目录中,在ubuntu 10.04上,大部分时间链接系统libstdc ++而不是自定义构建的(如ldd所示)。更令人费解的是,使用这个新构建的gcc,自定义编译的openmpi库正确链接,这是我编译的唯一可行的软件。有没有人对此有任何解释或解决方法?

感谢

2 个答案:

答案 0 :(得分:2)

配置它时,是否存在将libstdc静态链接到gcc的选项? - 如果我了解它是如何正常工作的,则禁用共享。最糟糕的情况是使用该开关再次编译gcc,看看你是否遇到了这个问题。

答案 1 :(得分:0)

我不知道为什么在GCC网站上针对最终用户没有对此进行更详细的说明。 GCC常见问题解答明确指出,这是libstdc++的常见问题。环境变量很麻烦。包装了链接器,没人知道该怎么做。不能编辑/etc/ld.so.conf。随处添加-Wl,-rpath,来吧。最简单的解决方案是specs文件。对于典型的64位x86 Linux系统,请进入dirname `g++ -print-libgcc-file-name`中的自定义gcc安装,然后运行g++ -dumpspecs > specs。编辑该文件,找到*link_command:部分。在%(link_libgcc)之后添加-rpath /home/user/bin/gcc-9/lib64(当然使用您自己的路径)。或将相同的rpath添加到*link:部分的末尾。或者,用--with-specs='%{!static:%x{-rpath=/home/user/bin/gcc9/lib64} %x{-enable-new-dtags}}'配置gcc。享受您自己的C ++编译器,该编译器生成可以正常运行的二进制文件。

另请参阅: