---
title: 编译TensorFlow 1.15.5时依赖组件hwloc编译失败的解决办法
description: "执行编译TensorFlow 1.15.5命令时提示external/hwloc/hwloc/topology.c:45:10: fatal error: sys/sysctl.h: No such file or directory详细信息如下："
url: https://www.hikunpeng.com/document/detail/zh/SRA/ecosystemEnable/TensorFlow/kunpengtensorflow_02_0029.html
sourcePath: /source/zh/SRA/ecosystemEnable/TensorFlow/kunpengtensorflow_02_0029.html
indexId: 3a9bee7233c62f9822cd0571f90c76d6e7aaaabce19ab2dbe211b0e7108489d072
---
# 编译TensorFlow 1.15.5时依赖组件hwloc编译失败的解决办法

#### 问题现象描述

执行编译TensorFlow 1.15.5命令时提示external/hwloc/hwloc/topology.c:45:10: fatal error: sys/sysctl.h: No such file or directory详细信息如下：


#### 关键过程、根本原因分析

关键错误信息：编译依赖组件hwloc时，提示头文件“sys/sysctl.h”找不到。

```
external/hwloc/hwloc/topology.c:45:10: fatal error: sys/sysctl.h: No such file or directory
   45 | #include <sys/sysctl.h>
```

根本原因分析：头文件“sys/sysctl.h”在glibc 2.32以及之后的版本中已被删除，且Linux内核5.5版本之后也已删除“sys/sysctl.h”系统底层调用。由于编译环境内核版本为5.10.0，所以编译依赖组件hwloc报错。


#### 结论、解决方案及效果

1. 打开并编辑“tensorflow/third_party/hwloc/BUILD.bazel”文件。
  1 vi tensorflow/third_party/hwloc/BUILD.bazel

2. 按“i”进入编辑模式，删除第113行内容。

```
"#undef HAVE_SYS_SYSCTL_H": "#define HAVE_SYS_SYSCTL_H 1",
```


  删除前：

  删除后：

3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
4. 重新编译TensorFlow。
  1 bazel build --config=v1 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package
