GitHub user cgeffect edited a discussion: 如何链接rocketmq静态库?
系统: linux centos 版本: 5.0.1 -rw-r--r-- 1 xxx algorithm 200M Apr 16 22:11 librocketmq.a -rwxr-xr-x 1 xxx algorithm 61M Apr 16 22:11 librocketmq.so 已经编译出了librocketmq.a, 还有libproto.a和libopencensus_proto.a, 工程链接只链接librocketmq.a不行, 报了很多absl, grpc, opencensus未定义的符号. rocketmq依赖的三方静态库不是直接打包进librocketmq.a的吗? 还需要单独链接吗? ``` /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `opencensus::trace::Span::AddAttribute(absl::lts_20211102::string_view, opencensus::trace::AttributeValueRef) const' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `absl::lts_20211102::FormatTime[abi:cxx11](absl::lts_20211102::string_view, absl::lts_20211102::Time, absl::lts_20211102::TimeZone)' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `grpc::experimental::ExternalCertificateVerifier::~ExternalCertificateVerifier()' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `absl::lts_20211102::numbers_internal::safe_strto32_base(absl::lts_20211102::string_view, int*, int)' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `absl::lts_20211102::time_internal::cctz::utc_time_zone()' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `opencensus::stats::ViewDescriptor::set_description(absl::lts_20211102::string_view)' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `grpc::Timespec2Timepoint(gpr_timespec)' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `absl::lts_20211102::ConvertDateTime(long, int, int, int, int, int, absl::lts_20211102::TimeZone)' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `absl::lts_20211102::container_internal::ConvertDeletedToEmptyAndFullToDeleted(absl::lts_20211102::container_internal::ctrl_t*, unsigned long)' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `absl::lts_20211102::hash_internal::MixingHashState::kSeed' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `opencensus::stats::ViewDescriptor::RegisterForExport() const' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `opencensus::tags::TagKey::name[abi:cxx11]() const' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `absl::lts_20211102::ToTimeT(absl::lts_20211102::Time)' /usr/local/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../x86_64-pc-linux-gnu/bin/ld: libmogic_cg.so: undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Arena*)' ``` 通过ldd 命令查看动态库的依赖, 发现libssl.so.1.1 和libcrypto.so.1.1 依赖的是动态库, 怎么才能使rocketmq依赖静态库呢? linux-vdso.so.1 => (0x00007fff7db29000) libz.so.1 => /lib64/libz.so.1 (0x00007f6fe2850000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f6fe264c000) librt.so.1 => /lib64/librt.so.1 (0x00007f6fe2444000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6fe2228000) libssl.so.1.1 => /home/xxx/third_party/prebuild/third_party/rocketmq-5.0/source/third_party/openssl/openssl_install/lib/libssl.so.1.1 (0x00007f6fe5354000) libcrypto.so.1.1 => /home/xxx/third_party/prebuild/third_party/rocketmq-5.0/source/third_party/openssl/openssl_install/lib/libcrypto.so.1.1 (0x00007f6fe1f3b000) libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6 (0x00007f6fe1b35000) libm.so.6 => /lib64/libm.so.6 (0x00007f6fe1833000) libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1 (0x00007f6fe161b000) libc.so.6 => /lib64/libc.so.6 (0x00007f6fe124d000) /lib64/ld-linux-x86-64.so.2 (0x00007f6fe51df000) GitHub link: https://github.com/apache/rocketmq-clients/discussions/729 ---- This is an automatically sent email for dev@rocketmq.apache.org. To unsubscribe, please send an email to: dev-unsubscr...@rocketmq.apache.org