【问题标题】:Build Devtoolset 7 gcc with "--enable-vtable-verify"使用“--enable-vtable-verify”构建 Devtoolset 7 gcc
【发布时间】:2019-03-18 04:39:02
【问题描述】:

我的机器上安装了 devtoolset7 包

devtoolset-7-binutils-devel-2.28-11.el7.x86_64
devtoolset-7-runtime-7.1-4.el7.x86_64
devtoolset-7-binutils-2.28-11.el7.x86_64
devtoolset-7-gdb-8.0.1-36.el7.x86_64
devtoolset-7-libasan-devel-7.3.1-5.13.el7.x86_64
devtoolset-7-gcc-c++-7.3.1-5.13.el7.x86_64
devtoolset-7-libstdc++-devel-7.3.1-5.13.el7.x86_64
devtoolset-7-valgrind-3.13.0-11.el7.x86_64
devtoolset-7-gcc-7.3.1-5.13.el7.x86_64

我正在尝试使用 -fvtable-verify=std 构建二进制文件

很遗憾,devtoolset 7提供的gcc不是用--enable-vtable-verify构建的

如何使用 --enable-vtable-verify 重建 devtoolset 7 gcc,其配置与 devtoolset 7 使用的配置相似。

【问题讨论】:

    标签: c++ vtable gcc7 devtoolset


    【解决方案1】:

    devtoolset 的重点是保持向后兼容系统编译器及其旧的libstdc++.so.6 库。 --enable-vtable-verify 选项使用不同的 ABI 创建不兼容的 C++ 运行时,该运行时不能与未在启用 VTV 的情况下编译的任何现有库一起使用。

    创建与系统编译器显式不兼容的 devtoolset 编译器(旨在与系统编译器兼容)毫无意义。

    如果您想使用 VTV,那么只需 build your own GCC from source 并启用 VTV,但请注意,由该 GCC 编译的代码将与使用系统编译器 devtoolset 编译器编译的代码不兼容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-28
      • 2018-10-12
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 1970-01-01
      相关资源
      最近更新 更多