c++ - PowerPC ppc64le 上的 Gcc Woverloaded-virtual 错误
问题描述
我正在努力构建Istio-envoy
. rhel7.6:ppc64le
构建通过,但是有测试失败:
错误:
In file included from test/server/filter_chain_benchmark_test.cc:19:0:`
`bazel-out/ppc-fastbuild/bin/external/com_github_google_benchmark/_virtual_includes/benchmark/benchmark/benchmark.h:1071:16: error: 'virtual void benchmark::Fixture::SetUp(benchmark::State&)' was hidden [-Werror=overloaded-virtual]`
`virtual void SetUp(State& st) { SetUp(const_cast<const State&>(st)); }`
` ^~~~~`
`test/server/filter_chain_benchmark_test.cc:152:8: error: by 'virtual void` `Envoy::Server::FilterChainBenchmarkFixture::SetUp(const benchmark::State&)' [-Werror=overloaded-virtual]
void SetUp(const ::benchmark::State& state) override {
^~~~~`
错误文件的链接https://github.com/istio/envoy/blob/release-1.3/test/server/filter_chain_benchmark_test.cc#L150
请帮我调试错误。
解决方案
调试中使用的一项关键技术是Wolf Fence 算法的应用。在这种情况下,我会使用这个调试算法。这种算法通常也称为二分法。
我建议以这种方式开始:
大多数 Envoy 开发都发生在 Ubuntu 18.04 上的 amd64 上。根据我的经验,RHEL7 落后于 Power 工具链的上游大师。此外,根据我的经验,Ubuntu 18.04 有一个更新的工具链。
作为 Istio 项目的众多维护者之一,您肯定至少需要 glibc 2.18,正如我直接参与的 Envoy 邮件列表线程中所讨论的那样。该线程中发生的调试表明 RHEL7 包含 glibc 2.17。
推荐阅读
- laravel - How to fix Paypal Checkout Order Creation Error
- vee-validate - Vee-validate 使用 3rd 方库扩展验证
- javascript - Ant design的“Step组件”这行怎么去掉?
- sql - 如何获取第二行
- excel - 我无法对单列数据集进行排序
- ssl - 科尔多瓦混合应用程序中的 NSURLErrorDomain 代码 1200 和 1004
- angular - Angular 8 库的全局 CSS
- angular - 用于获取令牌 api 的 Microsoft Graph api 返回请求的资源上不存在“Access-Control-Allow-Origin”标头
- django - 如何更改 django filter_horizontal 过滤器参数
- actionscript-3 - 使 TLFTextField 的宽度适合其在 AS3 中的 html 内容的长度