在GCC 4.4.7 Red Hat 6.6上运行GCC 5.2

Running gcc 5.2 build on gcc 4.4.7 Red Hat 6.6

本文关键字:GCC 运行 Hat Red      更新时间:2023-10-16

我们使用GCC 5.2(G 和-std = C 14构建了EXE,如果很重要)。

我们当前的部署机:
$ cat/etc/red*
Red Hat Enterprise Linux服务器版本6.6(Santiago)

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

在运行此EXE之前,我们确保它将使用使用GCC5.2.0构建的各种依赖库,这些库在构建过程中使用。

然而,如" LSOF -P"的下面输出所示,使用了来自GCC 4.4.7构建的一些库(在下面的前几行中基本上是"/lib64"下的所有内容)。这可能是一个问题吗?

     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

用您自己的副本对libstdc++.so.6的覆盖可能是有问题的,因为它是系统库,因此可以由其他系统库使用。实践中的工作是否取决于您准备的libstdc++.so.6版本的仔细。

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