apache / rocketmq-client-cpp

Apache RocketMQ cpp client
https://rocketmq.apache.org/
Apache License 2.0
364 stars 158 forks source link

boost::filesystem Undefined symbols for architecture x86_64 #390

Open superxieshushu opened 2 years ago

superxieshushu commented 2 years ago

uname -a Darwin MacBook-Pro.local 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64 branch: master jsoncpp-0.10.7、boost_1_78_0.tar、libevent-release-2.1.11-stable

[ 27%] Linking CXX shared library ../../bin/librocketmq.dylib cd /Users/xiexueyun/Documents/GithubCode/rocketmq-client-cpp/tmp_build_dir/project && /usr/local/Cellar/cmake/3.21.3_1/bin/cmake -E cmake_link_script CMakeFiles/rocketmq_shared.dir/link.txt --verbose=1 /Library/Developer/CommandLineTools/usr/bin/c++ -Wall -Wno-deprecated -fPIC -fno-strict-aliasing -std=c++11 -Wno-unused-local-typedef -Wno-expansion-to-defined -m64 -O3 -DNDEBUG -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -dynamiclib -Wl,-headerpad_max_install_names -DBOOST_ALL_DYN_LINK -shared -o ../../bin/librocketmq.dylib -install_name @rpath/librocketmq.dylib CMakeFiles/rocketmq_shared.dir//src/MQClientAPIImpl.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/MQClientFactory.cpp.o CMakeFiles/rocketmq_shared.dir//src/MQClientManager.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/Arg_helper.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/AsyncCallbackWrap.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/ClientRPCHook.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/common/DefaultMQClient.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/InputStream.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/MQClientErrorContainer.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/common/MQVersion.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/MemoryInputStream.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/MemoryOutputStream.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/common/MessageAccessor.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/MessageSysFlag.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/NameSpaceUtil.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/common/OutputStream.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/PermName.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/PullSysFlag.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/common/TopAddressing.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/TopicConfig.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/UtilAll.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/common/Validators.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/VirtualEnvUtil.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/big_endian.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/dataBlock.cpp.o CMakeFiles/rocketmq_shared.dir//src/common/sync_http_client.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/common/url.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/ConsumeMessageConcurrentlyService.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/ConsumeMessageHookImpl.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/consumer/ConsumeMessageOrderlyService.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/DefaultMQPullConsumer.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/DefaultMQPullConsumerImpl.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/consumer/DefaultMQPushConsumer.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/DefaultMQPushConsumerImpl.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/OffsetStore.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/consumer/PullAPIWrapper.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/PullRequest.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/PullResult.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/consumer/Rebalance.cpp.o CMakeFiles/rocketmq_shared.dir//src/consumer/SubscriptionData.cpp.o CMakeFiles/rocketmq_shared.dir//src/extern/CBatchMessage.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/extern/CErrorMessage.cpp.o CMakeFiles/rocketmq_shared.dir//src/extern/CMessage.cpp.o CMakeFiles/rocketmq_shared.dir//src/extern/CMessageExt.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/extern/CProducer.cpp.o CMakeFiles/rocketmq_shared.dir//src/extern/CPullConsumer.cpp.o CMakeFiles/rocketmq_shared.dir//src/extern/CPushConsumer.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/extern/CSendResult.cpp.o CMakeFiles/rocketmq_shared.dir//src/log/Logging.cpp.o CMakeFiles/rocketmq_shared.dir//src/message/BatchMessage.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/message/MQDecoder.cpp.o CMakeFiles/rocketmq_shared.dir//src/message/MQMessage.cpp.o CMakeFiles/rocketmq_shared.dir//src/message/MQMessageExt.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/message/MQMessageQueue.cpp.o CMakeFiles/rocketmq_shared.dir//src/producer/DefaultMQProducer.cpp.o CMakeFiles/rocketmq_shared.dir//src/producer/DefaultMQProducerImpl.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/producer/SendMessageHookImpl.cpp.o CMakeFiles/rocketmq_shared.dir//src/producer/SendResult.cpp.o CMakeFiles/rocketmq_shared.dir//src/producer/StringIdMaker.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/producer/TransactionMQProducer.cpp.o CMakeFiles/rocketmq_shared.dir//src/producer/TransactionMQProducerImpl.cpp.o CMakeFiles/rocketmq_shared.dir//src/protocol/CommandHeader.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/protocol/ConsumerRunningInfo.cpp.o CMakeFiles/rocketmq_shared.dir//src/protocol/LockBatchBody.cpp.o CMakeFiles/rocketmq_shared.dir//src/protocol/MessageQueue.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/protocol/RemotingCommand.cpp.o CMakeFiles/rocketmq_shared.dir//src/status/ConsumeStats.cpp.o CMakeFiles/rocketmq_shared.dir//src/status/StatsServer.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/status/StatsServerManager.cpp.o CMakeFiles/rocketmq_shared.dir//src/thread/task_queue.cpp.o CMakeFiles/rocketmq_shared.dir//src/trace/ConsumeMessageContext.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/trace/SendMessageContext.cpp.o CMakeFiles/rocketmq_shared.dir//src/trace/TraceBean.cpp.o CMakeFiles/rocketmq_shared.dir//src/trace/TraceContant.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/trace/TraceContext.cpp.o CMakeFiles/rocketmq_shared.dir//src/trace/TraceTransferBean.cpp.o CMakeFiles/rocketmq_shared.dir//src/trace/TraceUtil.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/transport/ClientRemotingProcessor.cpp.o CMakeFiles/rocketmq_shared.dir//src/transport/EventLoop.cpp.o CMakeFiles/rocketmq_shared.dir//src/transport/ResponseFuture.cpp.o CMakeFiles/rocketmq_shared.dir/__/src/transport/SocketUtil.cpp.o CMakeFiles/rocketmq_shared.dir//src/transport/TcpRemotingClient.cpp.o CMakeFiles/rocketmq_shared.dir//src/transport/TcpTransport.cpp.o ../../libs/signature/lib/libSignature.a ../../bin/lib/libjsoncpp.a ../../bin/lib/libevent.a ../../bin/lib/libevent_core.a ../../bin/lib/libevent_extra.a ../../bin/lib/libevent_pthreads.a ../../bin/lib/libevent_openssl.a ../../bin/lib/libboost_atomic.a ../../bin/lib/libboost_thread.a ../../bin/lib/libboost_system.a ../../bin/lib/libboost_chrono.a ../../bin/lib/libboost_date_time.a ../../bin/lib/libboost_log.a ../../bin/lib/libboost_log_setup.a ../../bin/lib/libboost_regex.a ../../bin/lib/libboost_serialization.a ../../bin/lib/libboost_filesystem.a ../../bin/lib/libboost_locale.a ../../bin/lib/libboost_iostreams.a ../../bin/lib/libssl.a ../../bin/lib/libcrypto.a -ldl -lpthread -lz Undefined symbols for architecture x86_64: "boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)", referenced from: rocketmq::MQClientAPIImpl::fetchNameServerAddr(std::__1::basic_string<char, std::1::char_traits, std::1::allocator > const&) in MQClientAPIImpl.cpp.o "boost::this_thread::hiden::sleep_for(timespec const&)", referenced from: rocketmq::MQClientFactory::resetOffset(std::1::basic_string<char, std::1::char_traits, std::1::allocator > const&, std::1::basic_string<char, std::1::char_traits, std::1::allocator > const&, std::1::map<rocketmq::MQMessageQueue, long long, std::1::less, std::1::allocator<std::1::pair<rocketmq::MQMessageQueue const, long long> > > const&) in MQClientFactory.cpp.o rocketmq::SleepingStrategy::WaitFor(std::1::vector<rocketmq::Sequence, std::__1::allocator<rocketmq::Sequence> > const&, rocketmq::Sequence const&, rocketmq::SequenceBarrierInterface const&, long long const&) in task_queue.cpp.o rocketmq::SleepingStrategy::WaitFor(std::1::vector<rocketmq::Sequence*, std::1::allocator<rocketmq::Sequence> > const&, rocketmq::Sequence const&, rocketmq::SequenceBarrierInterface const&, long long const&, long long const&) in task_queue.cpp.o "boost::log::v2s_mt_posix::aux::code_convert(wchar_t const, unsigned long, std::1::basic_string<char, std::__1::char_traits, std::1::allocator >&, std::1::locale const&)", referenced from: boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::1::char_traits, std::1::allocator >& boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::1::char_traits, std::1::allocator >::formatted_write(wchar_t const*, long) in Logging.cpp.o void boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::__1::char_traits, std::1::allocator >::aligned_write(wchar_t const, long) in Logging.cpp.o "boost::log::v2s_mt_posix::aux::unhandled_exception_count()", referenced from: rocketmq::LogUtil::LogMessageFull(boost::log::v2s_mt_posix::trivial::severity_level, char const, char const, int, char const, ...) in MQClientAPIImpl.cpp.o rocketmq::LogUtil::LogMessageFull(boost::log::v2s_mt_posix::trivial::severity_level, char const, char const, int, char const, ...) in MQClientFactory.cpp.o rocketmq::LogUtil::LogMessageFull(boost::log::v2s_mt_posix::trivial::severity_level, char const, char const, int, char const, ...) in AsyncCallbackWrap.cpp.o rocketmq::LogUtil::LogMessageFull(boost::log::v2s_mt_posix::trivial::severity_level, char const, char const, int, char const, ...) in ClientRPCHook.cpp.o rocketmq::LogUtil::LogMessageFull(boost::log::v2s_mt_posix::trivial::severity_level, char const, char const, int, char const, ...) in DefaultMQClient.cpp.o rocketmq::LogUtil::LogMessageFull(boost::log::v2s_mt_posix::trivial::severity_level, char const, char const, int, char const, ...) in MessageAccessor.cpp.o rocketmq::LogUtil::LogMessageFull(boost::log::v2s_mt_posix::trivial::severity_level, char const, char const, int, char const, ...) in NameSpaceUtil.cpp.o ... "boost::log::v2s_mt_posix::sinks::text_file_backend::construct(boost::filesystem::path const&, unsigned int, unsigned long, boost::log::v2s_mt_posix::aux::light_function<bool ()> const&, bool)", referenced from: void boost::log::v2s_mt_posix::sinks::text_file_backend::construct<boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::auto_flush, bool const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::max_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::target, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::min_free_space, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::empty_arg_list> > > > > > > > >(boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::auto_flush, bool const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::max_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::target, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::min_free_space, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::empty_arg_list> > > > > > > > const&) in Logging.cpp.o "boost::log::v2s_mt_posix::sinks::file::aux::make_collector(boost::filesystem::path const&, unsigned long, unsigned long)", referenced from: rocketmq::logAdapter::setLogFileNumAndSize(int, int) in Logging.cpp.o boost::shared_ptr<boost::log::v2s_mt_posix::sinks::synchronous_sink > boost::log::v2s_mt_posix::aux::add_file_log<boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::auto_flush, bool const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::max_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::target, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::min_free_space, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::empty_arg_list> > > > > > > > >(boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::auto_flush, bool const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::max_size, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::target, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::min_free_space, int const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::format, char const [36]>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::time_based_rotation, boost::log::v2s_mt_posix::sinks::file::rotation_at_time_point const>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::file_name, std::1::basic_string<char, std::__1::char_traits, std::1::allocator > >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::log::v2s_mt_posix::keywords::tag::rotation_size, int const>, boost::parameter::aux::empty_arg_list> > > > > > > > const&) in Logging.cpp.o (maybe you meant: boost::log::v2s_mt_posix::sinks::file::aux::make_collector(boost::filesystem::path const&, unsigned long, unsigned long, unsigned long)) "boost::log::v2s_mt_posix::trivial::to_string(boost::log::v2s_mt_posix::trivial::severity_level)", referenced from: void boost::log::v2s_mt_posix::type_dispatcher::callback_base::trampoline<boost::log::v2s_mt_posix::binder1st<boost::log::v2s_mt_posix::to_log_fun const&, boost::log::v2s_mt_posix::expressions::aux::stream_ref<boost::log::v2s_mt_posix::basic_formatting_ostream<char, std::1::char_traits, std::1::allocator > >&>, boost::log::v2s_mt_posix::trivial::severity_level>(void, boost::log::v2s_mt_posix::trivial::severity_level const&) in Logging.cpp.o "boost::detail::set_tss_data(void const, boost::shared_ptr, void, bool)", referenced from: boost::thread_specific_ptr<boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend::formatting_context>::~thread_specific_ptr() in Logging.cpp.o boost::thread_specific_ptr<boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend::formatting_context>::reset(boost::log::v2s_mt_posix::sinks::basic_formatting_sink_frontend::formatting_context) in Logging.cpp.o "boost::system::system_category()", referenced from: rocketmq::MQClientAPIImpl::fetchNameServerAddr(std::1::basic_string<char, std::1::char_traits, std::1::allocator > const&) in MQClientAPIImpl.cpp.o boost::mutex::lock() in MQClientAPIImpl.cpp.o _cxx_global_varinit.95 in MQClientAPIImpl.cpp.o cxx_global_var_init.98 in MQClientAPIImpl.cpp.o GLOBAL__sub_I_MQClientAPIImpl.cpp in MQClientAPIImpl.cpp.o rocketmq::MQClientFactory::start() in MQClientFactory.cpp.o rocketmq::MQClientFactory::startScheduledTask(bool) in MQClientFactory.cpp.o ... "boost::system::generic_category()", referenced from: GLOBALsub_I_MQClientAPIImpl.cpp in MQClientAPIImpl.cpp.o GLOBALsub_I_MQClientFactory.cpp in MQClientFactory.cpp.o GLOBALsub_I_MQClientManager.cpp in MQClientManager.cpp.o GLOBALsub_I_Arg_helper.cpp in Arg_helper.cpp.o GLOBALsub_I_AsyncCallbackWrap.cpp in AsyncCallbackWrap.cpp.o GLOBALsub_I_ClientRPCHook.cpp in ClientRPCHook.cpp.o GLOBALsub_I_DefaultMQClient.cpp in DefaultMQClient.cpp.o ... "boost::archive::text_iarchive_impl::load_override(boost::archive::class_name_type&, int)", referenced from: boost::archive::detail::common_iarchive::vload(boost::archive::class_name_type&) in OffsetStore.cpp.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: [../bin/librocketmq.dylib] Error 1 make[1]: [project/CMakeFiles/rocketmq_shared.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs....

xiaoma20082008 commented 2 years ago

几乎同样的问题!!

OS

Darwin M-C02G5B0CML7H 21.5.0 Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:22 PDT 2022; root:xnu-8020.121.3~4/RELEASE_X86_64 x86_64

Clang

Apple clang version 13.1.6 (clang-1316.0.21.2.5)
Target: x86_64-apple-darwin21.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Lib Versions

Error

Undefined symbols for architecture x86_64:
  "boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)", referenced from:
      rocketmq::MQClientAPIImpl::fetchNameServerAddr(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in MQClientAPIImpl.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../bin/librocketmq.dylib] Error 1
make[1]: *** [project/CMakeFiles/rocketmq_shared.dir/all] Error 2
make: *** [all] Error 2
build error.....