0

我的机器上安装了 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 类似的配置重建 devtoolset 7 gcc。

4

1 回答 1

1

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

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

如果您想使用 VTV,那么只需从源代码构建您自己的 GCC并启用 VTV,但请注意,由该 GCC 编译的代码将与使用系统编译器devtoolset 编译器编译的代码不兼容。

于 2019-09-12T09:18:35.423 回答