open-telemetry / open-telemetry/opentelemetry-cpp
[BUILD] Building simple example code with Bazel
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.4k
- Forks
- 632
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 75
Description
Describe your environment Describe any aspect of your environment relevant to the problem, including your platform, build system, version numbers of installed dependencies, etc. If you're reporting a problem with a specific version of a library in this repo, please check whether the problem has been fixed on main branch.
OS: Linux ubuntu
Bazel version: Build label: 7.0.1
Steps to reproduce
Describe exactly how to reproduce the error. Include a code sample if applicable.
-
successfully install opentelemetry onto system:
git clone --recurse-submodules --depth 1 --branch v1.14.2 https://github.com/open-telemetry/opentelemetry-cpp.git && cd opentelemetry-cpp && mkdir build && cd build && cmake -DWITH_BENCHMARK=OFF -DWITH_ZIPKIN=ON .. && cmake --build . -j 16 && cmake --install . -
build this example with a bazel project with system dependencies:
# build rule:
cc_binary(
name = "opentelemetry_test",
srcs = ["opentelemetry_test.cpp"],
copts = [
"-I/usr/local/include/",
],
# deps = ["//zipkip_opentelemetry:zipkin_opentelemetry"],
linkopts = [
"-L/usr/local/lib/",
"-lcurl",
"-lopentelemetry_common",
"-lopentelemetry_trace",
"-lopentelemetry_metrics",
"-lopentelemetry_logs",
"-lopentelemetry_version",
"-lopentelemetry_resources",
"-lopentelemetry_http_client_curl",
"-lopentelemetry_exporter_ostream_span",
"-lopentelemetry_exporter_ostream_metrics",
"-lopentelemetry_exporter_ostream_logs",
"-lopentelemetry_exporter_in_memory",
"-lopentelemetry_exporter_zipkin_trace",
],
)
build command:
bazel build --verbose_failures --cxxopt=-std=c++14 //:opentelemetry_test
What is the expected behavior?
What did you expect to see?
Expect successful example build.
What is the actual behavior?
What did you see instead?
produce error:
/usr/local/lib//libopentelemetry_trace.a(random_id_generator.cc.o):random_id_generator.cc:function opentelemetry::v1::sdk::trace::RandomIdGenerator::GenerateSpanId(): error: undefined reference to 'opentelemetry::v1::sdk::common::Random::GenerateRandomBuffer(opentelemetry::v1::nostd::span<unsigned char, 18446744073709551615ul>)'
/usr/local/lib//libopentelemetry_trace.a(random_id_generator.cc.o):random_id_generator.cc:function opentelemetry::v1::sdk::trace::RandomIdGenerator::GenerateTraceId(): error: undefined reference to 'opentelemetry::v1::sdk::common::Random::GenerateRandomBuffer(opentelemetry::v1::nostd::span<unsigned char, 18446744073709551615ul>)'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(opentelemetry::v1::exporter::zipkin::ZipkinExporterOptions const&): error: undefined reference to 'opentelemetry::v1::sdk::trace::SpanExporter::SpanExporter()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(opentelemetry::v1::exporter::zipkin::ZipkinExporterOptions const&): error: undefined reference to 'opentelemetry::v1::ext::http::client::HttpClientFactory::CreateSync()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(opentelemetry::v1::exporter::zipkin::ZipkinExporterOptions const&): error: undefined reference to 'opentelemetry::v1::sdk::trace::SpanExporter::~SpanExporter()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(): error: undefined reference to 'opentelemetry::v1::sdk::trace::SpanExporter::SpanExporter()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(): error: undefined reference to 'opentelemetry::v1::ext::http::client::HttpClientFactory::CreateSync()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(): error: undefined reference to 'opentelemetry::v1::sdk::trace::SpanExporter::~SpanExporter()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(std::shared_ptr<opentelemetry::v1::ext::http::client::HttpClientSync>): error: undefined reference to 'opentelemetry::v1::sdk::trace::SpanExporter::SpanExporter()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::ZipkinExporter(std::shared_ptr<opentelemetry::v1::ext::http::client::HttpClientSync>): error: undefined reference to 'opentelemetry::v1::sdk::trace::SpanExporter::~SpanExporter()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:function opentelemetry::v1::exporter::zipkin::ZipkinExporter::~ZipkinExporter(): error: undefined reference to 'opentelemetry::v1::sdk::trace::SpanExporter::~SpanExporter()'
/usr/local/lib//libopentelemetry_exporter_zipkin_trace.a(zipkin_exporter.cc.o):zipkin_exporter.cc:typeinfo for opentelemetry::v1::exporter::zipkin::ZipkinExporter: error: undefined reference to 'typeinfo for opentelemetry::v1::sdk::trace::SpanExporter'
collect2: error: ld returned 1 exit status
Target //:opentelemetry_test failed to build
Additional context
Add any other context about the problem here.
Also try other version, same issue.
I found similar issue with CMake: https://github.com/open-telemetry/opentelemetry-cpp/issues/1359, but not sure how to fix in this example.
Thanks in advance!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with examples/zipkin/main.cc and compare its dependencies with the reported Bazel cc_binary and link options. Reproduce the failure using the provided Ubuntu, installation, and bazel build commands, then inspect the related CMake issue 1359 for context. Done means the simple Zipkin example builds successfully with the installed libraries.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100