You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2019/11/28 02:29:52 UTC
[GitHub] [rocketmq-client-go] zengxiaobai commented on issue #305: [Master]
go build fail using static library.
zengxiaobai commented on issue #305: [Master] go build fail using static library.
URL: https://github.com/apache/rocketmq-client-go/issues/305#issuecomment-559316107
> Hello, @hanzhonghua0927 @zengxiaobai
> The Cgo SDK will link the dynamic CPP library as default, and the dependencies such as the zlib are linked dynamically.
> if you want to use the CPP static library, the Zlib and libstdc++ libraries need to be linked manually, please follow 3 steps:
>
> 1. remove the dynamic library in your LDPATH(default: /usr/local/lib)
> 2. change the LDFLAGs in the go SDK from "cgo LDFLAGS: -L/usr/local/lib -lrocketmq" to "cgo LDFLAGS: -L/usr/local/lib -lz -l stdc++ -lrocketmq"
> 3. build your project directly without any building flags.
>
> please have a try.
I try like this:
step1: remove librocketmq.so from /usr/local/lib, mv librocketmq.a to /usr/local/lib/
step2: install zlib-static libstdc++-static
step3: copy libz.a libstdc++.a to /usr/local/lib
step4: change core/producer.go core/message.go core/cfuns.go core/pull_consumer.go core/push_consumer.go FROM
#cgo LDFLAGS: -L /usr/local/lib/ TO -L/usr/local/lib/ -lrocketmq -lz -lstdc++ (-lrocketmq)
step5: go build
ERRORS:
```
global_logger_storage.cpp:(.text+0x224): undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/local/lib/librocketmq.a(global_logger_storage.o):global_logger_storage.cpp:(.text+0x238): more undefined references to `std::string::_Rep::_M_dispose(std::allocator<char> const&)' follow
/usr/local/lib/librocketmq.a(global_logger_storage.o): In function `boost::log::v2s_mt_posix::sources::aux::global_storage::get_or_init(std::type_info const&, boost::shared_ptr<boost::log::v2s_mt_posix::sources::aux::logger_holder_base> (*)())':
global_logger_storage.cpp:(.text+0x678): undefined reference to `__cxa_guard_acquire'
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
With regards,
Apache Git Services