编译Bazel 0.26.1失败的解决办法
问题现象描述
若编译Bazel 0.26.1时提示error: ambiguating new declaration of 'long int gettid(),详细信息如下图:
关键过程、根本原因分析
Bazel源码定义的gettid()函数与glibc库冲突。
结论、解决方案及效果
将Bazel源码中的函数名gettid改为gettid_sys,再重新编译Bazel。
调整前:
执行以下命令替换gettid:
1 | grep -rl 'gettid' third_party/grpc/src/ | xargs sed -i 's/\bgettid/gettid_sys/g' |
调整后:
父主题: 故障排除