opentelemetry-cpp依赖顺序异常排查

还可以循环着玩,闹呢。。。、、

错误:选取一部分

10.90 /usr/lib/gcc/aarch64-alpine-linux-musl/13.2.1/../../../../aarch64-alpine-linux-musl/bin/ld: otlp_grpc_exporter.cc:(.text+0xeb4): undefined reference to `opentelemetry::v1::exporter::otlp::OtlpGrpcClient::DelegateExport(opentelemetry::proto::collector::trace::v1::TraceService::StubInterface*, std::unique_ptr<grpc::ClientContext, std::default_delete<grpc::ClientContext> >&&, std::unique_ptr<google::protobuf::Arena, std::default_delete<google::protobuf::Arena> >&&, opentelemetry::proto::collector::trace::v1::ExportTraceServiceRequest&&, opentelemetry::proto::collector::trace::v1::ExportTraceServiceResponse*)'
10.90 /usr/lib/gcc/aarch64-alpine-linux-musl/13.2.1/../../../../aarch64-alpine-linux-musl/bin/ld: otlp_grpc_exporter.cc:(.text+0x14b4): undefined reference to `opentelemetry::v1::exporter::otlp::grpc_utils::grpc_status_code_to_string(grpc::StatusCode)'

过程
1.问题定位过程
otlp_grpc_exporter.cc:(.text+0x14b4): undefined reference to `opentelemetry::v1::exporter::otlp::grpc_utils::grpc_status_code_to_string(grpc::StatusCode)’
otlp_grpc_exporter.cc 依赖 grpc_utils 但是找不到,

  1. 所以项目中搜索otlp_grpc_exporter.cc
    2. 在这里插入图片描述
  2. 所以otlp_grpc_exporter.cc 是 otlp_grpc_exporter的类,然后在搜索grpc_utils

在这里插入图片描述
在client里,但是前期的一顿排查,opentelemetry_exporter_otlp_grpc_client 是依赖opentelemetry_exporter_otlp_grpc的,现在开始反向依赖了。

  1. 提供一个可以成功编译的顺序
RUN g++ -o myapp main.cpp -I/usr/local/include -L/usr/local/lib \
 -lopentelemetry_exporter_in_memory \
 -lopentelemetry_exporter_ostream_metrics \
 -lopentelemetry_exporter_ostream_span \
 -lopentelemetry_exporter_otlp_grpc_client \
 -lopentelemetry_exporter_otlp_grpc_log \
 -lopentelemetry_exporter_otlp_grpc_metrics \
 -lopentelemetry_exporter_otlp_grpc \
 -lopentelemetry_exporter_otlp_grpc_client \
 -lopentelemetry_otlp_recordable \
 -lopentelemetry_proto_grpc \
 -lopentelemetry_exporter_ostream_logs \
 -lopentelemetry_trace \
 -lopentelemetry_proto  \
 -lopentelemetry_logs \
-lopentelemetry_metrics \
-lopentelemetry_resources \
-lopentelemetry_common \
-lgrpc++ -lprotobuf -lspdlog -lpthread 

可能确实对c++循环依赖不太熟悉,记录一下,希望有所帮助;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值