在gcc 4.4.7 Red Hat 6.6上运行gcc 5.2

时间:2019-02-15 19:38:01

标签: c++ gcc glibc

我们使用gcc 5.2(如果重要的话,请使用g ++和--std = c ++ 14)构建一个exe。

我们当前的部署机器:
$ cat / etc / red *
红帽企业Linux服务器6.6版(圣地亚哥)

它具有以下libc:
$ /lib/libc-2.12.so
由GNU CC版本4.4.7 20120313(Red Hat 4.4.7-9)编译。
2015年1月19日在Linux 2.6.32系统上编译。

在运行此exe之前,我们确保其将使用在构建过程中使用的gcc5.2.0构建的各种依赖库。

但是,如下面的“ lsof -p”输出所示,仍然使用了某些库(基本上是下面几行中“ / lib64”下的所有内容),它们来自gcc 4.4.7构建。这可能是个问题吗?

     NODE NAME
      130 /lib64/ld-2.12.so
      154 /lib64/libc-2.12.so
     8296 /lib64/libdl-2.12.so
     8294 /lib64/libpthread-2.12.so
     1778 /lib64/libm-2.12.so
     8315 /lib64/libz.so.1.2.3
      218 /lib64/libnsl-2.12.so
     5312 /lib64/librt-2.12.so
     5663 /lib64/libnss_files-2.12.so
  4199459 /home/gcc-5.2.0/runtime_libs/libgcc_s.so.1
  4199412 /home/gcc-5.2.0/runtime_libs/libstdc++.so.6
  4199453 /home/gcc-5.2.0/runtime_libs/libboost_regex.so.1.61.0
  4199433 /home/gcc-5.2.0/runtime_libs/libboost_date_time.so.1.61.0
  4199442 /home/gcc-5.2.0/runtime_libs/libboost_filesystem.so.1.61.0
  4199427 /home/gcc-5.2.0/runtime_libs/libboost_system.so.1.61.0
  4199476 /home/gcc-5.2.0/runtime_libs/libboost_thread.so.1.61.0
  4199429 /home/gcc-5.2.0/runtime_libs/libxerces-c-3.0.so
  4199407 /home/gcc-5.2.0/runtime_libs/libACE.so.6.2.0

1 个答案:

答案 0 :(得分:0)

用您自己的副本覆盖libstdc++.so.6可能会出现问题,因为它是一个系统库,因此可以被其他系统库使用。这在实践中是否有效取决于您对libstdc++.so.6版本的准备程度。

Red Hat Developer Toolset的不同GCC版本部分避免了此问题,因为它们使用混合链接模型,其中系统libstdc++.so.6库的大部分仍在使用,并且较新的C ++版本需要的功能是通过静态链接添加。