Opentelemetry社区在gRPC的几个链接问题(静态库和动态库混用,musl工具链,符号裁剪)
原文中文,约4500字,阅读约需11分钟。发表于: 。前言 opentelemetry-cpp 在标准上报协议OTLP里是支持使用 gRPC 作为传输协议的。但是,当 gRPC 被作为静态库同时链接进多个动态库时,在一些平台上会有一些问题。这是 gRPC 本身的一些实现方式导致的。 一直拖到今天才来比较完整得写这个问题的具体成因和解决方案,实际上也有一些其他库有相似实现的也会有相同的问题,所以分享出来看看有没有其他同学也可能碰到可以参考一下。
本文讨论了使用gRPC作为传输协议时,静态库同时链接进多个动态库可能会出现的问题及解决方案,同时提到了grpc::Status::OK的实现方式可能会导致链接错误的解决方法,最后建议对输出接口使用符号导出并改变默认可见性。