Open chenhong805 opened 4 months ago
I have BUILD file for this in my fork - https://github.com/malkia/opentelemetry-cpp/blame/main/examples/zipkin/BUILD - since it probably won't work here, here is a bit modified (hopefully still works)
package(default_visibility = ["//visibility:public"])
cc_binary(
name = "example_zipkin",
srcs = [
"main.cc",
],
linkopts = select({
"//bazel:windows": [],
"//conditions:default": ["-pthread"],
}),
tags = ["examples", "zipkin"],
deps = [
"//examples/common/foo_library:common_foo_library",
"//exporters/zipkin:zipkin_exporter"
],
)
then you should be able to
bazel run example_zipkin
Thanks malkia.
I look into the cmake configuration and try build with -fPIC
on the bazel target, found that libopentelemetry_common.so
is not installed.
I added following build option and resolve the issue: -DOPENTELEMETRY_INSTALL=ON
(see https://github.com/open-telemetry/opentelemetry-cpp/blob/main/sdk/CMakeLists.txt).
I feel this could be added to the documentation.
Created PR: https://github.com/open-telemetry/opentelemetry-cpp/pull/2592
This issue was marked as stale due to lack of activity.
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"],
)
bazel build --verbose_failures --cxxopt=-std=c++14 //:opentelemetry_test
/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): 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): 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