You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7编译TensorFlow Serving 2.5.1报absl库未定义错误怎么办

报错原因
  • 该错误属于典型的abseil库ABI不兼容导致的链接失败,在CentOS 7 + TensorFlow Serving 2.5.1的场景下,核心诱因是CentOS 7默认搭载的gcc 4.8.5对C17标准支持不完整,而TensorFlow Serving 2.5.1依赖的absl lts_2020_09_23版本的部分接口需要符合C17标准的编译器编译,低版本gcc编译时会缺失对应符号的实现。
  • 次要诱因是bazel构建时全局使用的C标准和abseil库编译时的C标准不一致,导致符号规则不匹配,无法找到对应定义。
解决方案
  1. 首先升级gcc版本到7.x及以上,推荐使用scl源安装gcc 8版本,执行如下命令:
yum install centos-release-scl -y
yum install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils -y
# 临时启用gcc 8,重启终端后失效,如需永久生效可写入~/.bashrc
source /opt/rh/devtoolset-8/enable

安装完成后执行gcc -v确认版本为8.x系列即可。

  1. 调整编译命令,显式指定全局C++标准为17,修改后的编译命令如下:
bazel build --color=yes --curses=yes \
    --verbose_failures \
    --config=release \
    --cxxopt=-std=c++17 \
    --host_cxxopt=-std=c++17 \
    --output_filter=DONT_MATCH_ANYTHING \
    tensorflow_serving/model_servers:tensorflow_model_server
  1. 如果调整命令后仍报相同错误,可手动修改TensorFlow Serving源码根目录下的.bazelrc文件,添加两行全局配置:
build --cxxopt=-std=c++17
build --host_cxxopt=-std=c++17

保存后重新执行编译命令即可。


内容的提问来源于stack exchange,提问作者lee sir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:45:07