执行编译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”找不到。
1 2 | 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 | vi tensorflow/third_party/hwloc/BUILD.bazel
|
"#undef HAVE_SYS_SYSCTL_H": "#define HAVE_SYS_SYSCTL_H 1",
删除前:
删除后:
1 | bazel build --config=v1 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package |