尝试brpc来升级rpc服务,测试应用过程
照着官方文档来,不过在mac下还是有些小坑
对熟悉c++的人来说很小儿科,但对c++相对比较外行 (只知道基本语法和部分数据结构)的人,还是作不到开箱即用
首先编译
```
If you need to enable cpu/heap profilers in examples:
brew install gperftools
If you need to run tests, install and compile googletest (which is not compiled yet):
git clone https://github.com/google/googletest && cd googletest/googletest && mkdir bld && cd bld && cmake .. && make && sudo mv libgtest* /usr/lib/ && cd -
```
报错
/Users/cclient/Work/Source/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h:67:60: error: expected class name
: public ParamGeneratorInterface< ::std::tuple<T1, T2> > {
^
/Users/cclient/Work/Source/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h:69:18: error: no template named 'tuple' in namespace 'std'
typedef ::std::tuple<T1, T2> ParamType;
~~~~~~~^
/Users/cclient/Work/Source/googletest/googletest/include/gtest/internal/gtest-param-util-generated.h:74:33: warning: 'override' keyword is a C++11 extension
[-Wc++11-extensions]
~CartesianProductGenerator2() override {}
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
119 warnings and 20 errors generated.
make[2]: *** [CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1
make[1]: *** [CMakeFiles/gtest.dir/all] Error 2
make: *** [all] Error 2
大量的std错误
查看googletest官方信息
https://github.com/google/googletest/blob/master/googletest/README.md
果然看到
```
C++ Standard Version
An environment that supports C++11 is required in order to successfully build Google Test. One way to ensure this is to specify the standard in the top-level project, for example by using the set(CMAKE_CXX_STANDARD 11) command. If this is not feasible, for example in a C project using Google Test for validation, then it can be specified by adding it to the options for cmake via the DCMAKE_CXX_FLAGS option.
```
更改
vim ../CMakeLists.txt
添加
set(CMAKE_CXX_STANDARD 11)
编译成功
jdeMacBook-Pro:bld cclient$ make
Scanning dependencies of target gtest
[ 25%] Building CXX object CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 50%] Linking CXX static library lib/libgtest.a
[ 50%] Built target gtest
Scanning dependencies of target gtest_main
[ 75%] Building CXX object CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
[100%] Linking CXX static library lib/libgtest_main.a
sudo mv libgtest* /usr/lib/ && cd -
#mac 路径 更改至 /usr/local/lib/
sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib --cc=clang --cxx=clang++
gnu-getopt must be installed and used
bjdeMacBook-Pro:brpc cclient$ brew reinstall gnu-getopt
==> Reinstalling gnu-getopt
==> Downloading https://homebrew.bintray.com/bottles/gnu-getopt-1.1.6.high_sierra.bottle.tar.gz
Already downloaded: /Users/cclient/Library/Caches/Homebrew/downloads/bb41269c7b4673c442514e69d159a5ec6238d547266318d72d3c067be2ed448f--gnu-getopt-1.1.6.high_sierra.bottle.tar.gz
==> Pouring gnu-getopt-1.1.6.high_sierra.bottle.tar.gz
==> Caveats
gnu-getopt is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
If you need to have gnu-getopt first in your PATH run:
echo 'export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"' >> ~/.bash_profile
==> Summary
🍺 /usr/local/Cellar/gnu-getopt/1.1.6: 34 files, 110.9KB
bjdeMacBook-Pro:brpc cclient$ export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"
bjdeMacBook-Pro:brpc cclient$ sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib --cc=clang --cxx=clang++
config_brpc.sh: line 43: realpath: command not found
config_brpc.sh: line 44: realpath: command not found
config_brpc: --headers=HDRPATHS --libs=LIBPATHS must be specified
http://blog.ivansiu.com/blog/2014/05/01/os-x-get-full-path-of-file-using-realpath/
https://blog.csdn.net/robertsong2004/article/details/54809105
To force the link and overwrite all conflicting files:
brew link --overwrite coreutils
bjdeMacBook-Pro:brpc cclient$ sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib/ --cc=clang --cxx=clang++
Fail to find openssl/ssl.h from --headers
http://www.cnblogs.com/bugchecker/p/openssl_head_files_not_found_after_upgrading_to_osx_1011.html
bjdeMacBook-Pro:~ cclient$ brew install openssl
Warning: openssl 1.0.2q is already installed and up-to-date
To reinstall 1.0.2q, run `brew reinstall openssl`
bjdeMacBook-Pro:~ cclient$ brew reinstall openssl
==> Reinstalling openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2q.high_sierra.bottle.tar.gz
Already downloaded: /Users/cclient/Library/Caches/Homebrew/downloads/e9b89b99f0752c2a6e4ddf120e7d4b1f7ddd57e5883bd85de335fb18a9de619f--openssl-1.0.2q.high_sierra.bottle.tar.gz
==> Pouring openssl-1.0.2q.high_sierra.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
/usr/local/etc/openssl/certs
and run
/usr/local/opt/openssl/bin/c_rehash
openssl is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.
If you need to have openssl first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
For compilers to find openssl you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
For pkg-config to find openssl you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
==> Summary
🍺 /usr/local/Cellar/openssl/1.0.2q: 1,794 files, 12.1MB
bjdeMacBook-Pro:brpc cclient$ cp -r /usr/local/opt/openssl /usr/local/include/
sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib/ --cc=clang --cxx=clang++
cd /Users/cclient/Work/Source/googletest/googletest
cp -r include/gtest /usr/local/include
bjdeMacBook-Pro:brpc cclient$ sh config_brpc.sh --headers=/usr/local/include --libs=/usr/local/lib/ --cc=clang --cxx=clang++
bjdeMacBook-Pro:brpc cclient$
https://github.com/brpc/brpc/blob/master/docs/cn/getting_started.md#macos
bjdeMacBook-Pro:brpc cclient$ make
Generating src/idl_options.pb.cc
Compiling src/mcpack2pb/generator.o
Generating src/brpc/builtin_service.pb.h
Generating src/brpc/errno.pb.h
Generating src/brpc/get_favicon.pb.h
Generating src/brpc/get_js.pb.h
Generating src/brpc/nshead_meta.pb.h
Generating src/brpc/options.pb.h
Generating src/brpc/rpc_dump.pb.h
Generating src/brpc/rtmp.pb.h
Generating src/brpc/span.pb.h
Generating src/brpc/streaming_rpc_meta.pb.h
Generating src/brpc/trackme.pb.h
Generating src/brpc/policy/baidu_rpc_meta.pb.h
Generating src/brpc/policy/hulu_pbrpc_meta.pb.h
Generating src/brpc/policy/mongo.pb.h
Generating src/brpc/policy/public_pbrpc_meta.pb.h
Generating src/brpc/policy/sofa_pbrpc_meta.pb.h
Compiling src/butil/third_party/dmg_fp/g_fmt.o
Compiling src/butil/third_party/dmg_fp/dtoa_wrapper.o
Compiling src/butil/third_party/dynamic_annotations/dynamic_annotations.o
Compiling src/butil/third_party/icu/icu_utf.o
Compiling src/butil/third_party/superfasthash/superfasthash.o
Compiling src/butil/third_party/modp_b64/modp_b64.o
Compiling src/butil/third_party/nspr/prtime.o
Compiling src/butil/third_party/symbolize/demangle.o
Compiling src/butil/third_party/symbolize/symbolize.o
Compiling src/butil/third_party/snappy/snappy-sinksource.o
Compiling src/butil/third_party/snappy/snappy-stubs-internal.o
Compiling src/butil/third_party/snappy/snappy.o
Compiling src/butil/third_party/murmurhash3/murmurhash3.o
Compiling src/butil/arena.o
Compiling src/butil/at_exit.o
Compiling src/butil/atomicops_internals_x86_gcc.o
Compiling src/butil/base64.o
Compiling src/butil/big_endian.o
Compiling src/butil/cpu.o
Compiling src/butil/debug/alias.o
Compiling src/butil/debug/asan_invalid_access.o
Compiling src/butil/debug/crash_logging.o
Compiling src/butil/debug/debugger.o
Compiling src/butil/debug/debugger_posix.o
Compiling src/butil/debug/dump_without_crashing.o
Compiling src/butil/debug/proc_maps_linux.o
Compiling src/butil/debug/stack_trace.o
Compiling src/butil/debug/stack_trace_posix.o
Compiling src/butil/environment.o
Compiling src/butil/files/file.o
Compiling src/butil/files/file_posix.o
Compiling src/butil/files/file_enumerator.o
Compiling src/butil/files/file_enumerator_posix.o
Compiling src/butil/files/file_path.o
Compiling src/butil/files/file_path_constants.o
Compiling src/butil/files/memory_mapped_file.o
Compiling src/butil/files/memory_mapped_file_posix.o
Compiling src/butil/files/scoped_file.o
Compiling src/butil/files/scoped_temp_dir.o
Compiling src/butil/file_util.o
Compiling src/butil/file_util_posix.o
Compiling src/butil/guid.o
Compiling src/butil/guid_posix.o
Compiling src/butil/hash.o
Compiling src/butil/lazy_instance.o
Compiling src/butil/location.o
Compiling src/butil/md5.o
Compiling src/butil/memory/aligned_memory.o
Compiling src/butil/memory/ref_counted.o
Compiling src/butil/memory/ref_counted_memory.o
Compiling src/butil/memory/singleton.o
Compiling src/butil/memory/weak_ptr.o
Compiling src/butil/posix/file_descriptor_shuffle.o
Compiling src/butil/posix/global_descriptors.o
Compiling src/butil/process_util.o
Compiling src/butil/rand_util.o
Compiling src/butil/rand_util_posix.o
Compiling src/butil/fast_rand.o
Compiling src/butil/safe_strerror_posix.o
Compiling src/butil/sha1_portable.o
Compiling src/butil/strings/latin1_string_conversions.o
Compiling src/butil/strings/nullable_string16.o
Compiling src/butil/strings/safe_sprintf.o
Compiling src/butil/strings/string16.o
Compiling src/butil/strings/string_number_conversions.o
Compiling src/butil/strings/string_split.o
Compiling src/butil/strings/string_piece.o
Compiling src/butil/strings/string_util.o
Compiling src/butil/strings/string_util_constants.o
Compiling src/butil/strings/stringprintf.o
Compiling src/butil/strings/utf_offset_string_conversions.o
Compiling src/butil/strings/utf_string_conversion_utils.o
Compiling src/butil/strings/utf_string_conversions.o
Compiling src/butil/synchronization/cancellation_flag.o
Compiling src/butil/synchronization/condition_variable_posix.o
Compiling src/butil/synchronization/waitable_event_posix.o
Compiling src/butil/threading/non_thread_safe_impl.o
Compiling src/butil/threading/platform_thread_posix.o
Compiling src/butil/threading/simple_thread.o
Compiling src/butil/threading/thread_checker_impl.o
Compiling src/butil/threading/thread_collision_warner.o
Compiling src/butil/threading/thread_id_name_manager.o
Compiling src/butil/threading/thread_local_posix.o
Compiling src/butil/threading/thread_local_storage.o
Compiling src/butil/threading/thread_local_storage_posix.o
Compiling src/butil/threading/thread_restrictions.o
Compiling src/butil/threading/watchdog.o
Compiling src/butil/time/clock.o
Compiling src/butil/time/default_clock.o
Compiling src/butil/time/default_tick_clock.o
Compiling src/butil/time/tick_clock.o
Compiling src/butil/time/time.o
Compiling src/butil/time/time_posix.o
Compiling src/butil/version.o
Compiling src/butil/logging.o
Compiling src/butil/class_name.o
Compiling src/butil/errno.o
Compiling src/butil/find_cstr.o
Compiling src/butil/status.o
Compiling src/butil/string_printf.o
Compiling src/butil/thread_local.o
Compiling src/butil/unix_socket.o
Compiling src/butil/endpoint.o
Compiling src/butil/fd_utility.o
Compiling src/butil/files/temp_file.o
Compiling src/butil/files/file_watcher.o
Compiling src/butil/time.o
Compiling src/butil/zero_copy_stream_as_streambuf.o
Compiling src/butil/crc32c.o
Compiling src/butil/containers/case_ignored_flat_map.o
Compiling src/butil/iobuf.o
Compiling src/butil/binary_printer.o
src/butil/binary_printer.cpp:107:26: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat]
b.size() - nw);
^~~~~~~~~~~~~
src/butil/binary_printer.cpp:136:9: note: in instantiation of function template specialization 'butil::PrintIOBuf<butil::OStreamAppender>' requested here
PrintIOBuf(&appender, *_iobuf, _max_length);
^
src/butil/binary_printer.cpp:125:32: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat]
s.size() - i);
^~~~~~~~~~~~
src/butil/binary_printer.cpp:138:9: note: in instantiation of function template specialization 'butil::PrintString<butil::OStreamAppender>' requested here
PrintString(&appender, _str, _max_length);
^
src/butil/binary_printer.cpp:107:26: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat]
b.size() - nw);
^~~~~~~~~~~~~
src/butil/binary_printer.cpp:145:5: note: in instantiation of function template specialization 'butil::PrintIOBuf<butil::StringAppender>' requested here
PrintIOBuf(&appender, data, max_length);
^
src/butil/binary_printer.cpp:125:32: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat]
s.size() - i);
^~~~~~~~~~~~
src/butil/binary_printer.cpp:152:5: note: in instantiation of function template specialization 'butil::PrintString<butil::StringAppender>' requested here
PrintString(&appender, data, max_length);
^
4 warnings generated.
Compiling src/butil/popen.o
Compiling src/butil/mac/bundle_locations.o
Compiling src/butil/mac/foundation_util.o
Compiling src/butil/file_util_mac.o
Compiling src/butil/threading/platform_thread_mac.o
Compiling src/butil/strings/sys_string_conversions_mac.o
Compiling src/butil/time/time_mac.o
Compiling src/butil/mac/scoped_mach_port.o
Compiling src/bvar/collector.o
Compiling src/bvar/default_variables.o
Compiling src/bvar/gflag.o
Compiling src/bvar/latency_recorder.o
Compiling src/bvar/variable.o
Compiling src/bvar/detail/percentile.o
Compiling src/bvar/detail/sampler.o
Compiling src/bthread/bthread.o
Compiling src/bthread/butex.o
Compiling src/bthread/condition_variable.o
Compiling src/bthread/context.o
Compiling src/bthread/countdown_event.o
Compiling src/bthread/errno.o
Compiling src/bthread/execution_queue.o
Compiling src/bthread/fd.o
src/bthread/fd.cpp:437:23: warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
if (kqueue_events == EVFILT_READ) {
~~~~~~~~~~~~~ ^ ~~~~~~~~~~~
src/bthread/fd.cpp:440:23: warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
if (kqueue_events == EVFILT_WRITE) {
~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~
2 warnings generated.
Compiling src/bthread/id.o
Compiling src/bthread/interrupt_pthread.o
Compiling src/bthread/key.o
Compiling src/bthread/mutex.o
Compiling src/bthread/stack.o
Compiling src/bthread/sys_futex.o
Compiling src/bthread/task_control.o
Compiling src/bthread/task_group.o
Compiling src/bthread/timer_thread.o
Compiling src/json2pb/encode_decode.o
Compiling src/json2pb/json_to_pb.o
Compiling src/json2pb/pb_to_json.o
Compiling src/json2pb/protobuf_map.o
Compiling src/idl_options.pb.o
Compiling src/mcpack2pb/field_type.o
Compiling src/mcpack2pb/mcpack2pb.o
Compiling src/mcpack2pb/parser.o
Compiling src/mcpack2pb/serializer.o
Compiling src/brpc/builtin_service.pb.o
Compiling src/brpc/errno.pb.o
Compiling src/brpc/get_favicon.pb.o
Compiling src/brpc/get_js.pb.o
Compiling src/brpc/nshead_meta.pb.o
Compiling src/brpc/options.pb.o
Compiling src/brpc/rpc_dump.pb.o
Compiling src/brpc/rtmp.pb.o
Compiling src/brpc/span.pb.o
Compiling src/brpc/streaming_rpc_meta.pb.o
Compiling src/brpc/trackme.pb.o
Compiling src/brpc/policy/baidu_rpc_meta.pb.o
Compiling src/brpc/policy/hulu_pbrpc_meta.pb.o
Compiling src/brpc/policy/mongo.pb.o
Compiling src/brpc/policy/public_pbrpc_meta.pb.o
Compiling src/brpc/policy/sofa_pbrpc_meta.pb.o
Compiling src/brpc/acceptor.o
Compiling src/brpc/adaptive_connection_type.o
Compiling src/brpc/adaptive_max_concurrency.o
Compiling src/brpc/amf.o
Compiling src/brpc/channel.o
Compiling src/brpc/circuit_breaker.o
Compiling src/brpc/compress.o
Compiling src/brpc/controller.o
Compiling src/brpc/esp_message.o
Compiling src/brpc/event_dispatcher.o
Compiling src/brpc/global.o
Compiling src/brpc/grpc.o
Compiling src/brpc/http2.o
Compiling src/brpc/http_header.o
Compiling src/brpc/http_method.o
Compiling src/brpc/http_status_code.o
Compiling src/brpc/input_messenger.o
Compiling src/brpc/load_balancer.o
Compiling src/brpc/memcache.o
Compiling src/brpc/nshead_message.o
Compiling src/brpc/nshead_pb_service_adaptor.o
Compiling src/brpc/nshead_service.o
Compiling src/brpc/parallel_channel.o
Compiling src/brpc/partition_channel.o
Compiling src/brpc/periodic_naming_service.o
Compiling src/brpc/periodic_task.o
Compiling src/brpc/progressive_attachment.o
Compiling src/brpc/protocol.o
Compiling src/brpc/redis.o
Compiling src/brpc/redis_command.o
Compiling src/brpc/redis_reply.o
Compiling src/brpc/reloadable_flags.o
Compiling src/brpc/restful.o
Compiling src/brpc/retry_policy.o
Compiling src/brpc/rpc_dump.o
Compiling src/brpc/rtmp.o
Compiling src/brpc/selective_channel.o
Compiling src/brpc/serialized_request.o
Compiling src/brpc/server.o
Compiling src/brpc/server_id.o
Compiling src/brpc/socket.o
Compiling src/brpc/socket_map.o
Compiling src/brpc/span.o
Compiling src/brpc/ssl_options.o
Compiling src/brpc/stream.o
Compiling src/brpc/trackme.o
Compiling src/brpc/ts.o
Compiling src/brpc/uri.o
Compiling src/brpc/details/has_epollrdhup.o
Compiling src/brpc/details/hpack.o
Compiling src/brpc/details/http_message.o
Compiling src/brpc/details/http_parser.o
Compiling src/brpc/details/load_balancer_with_naming.o
Compiling src/brpc/details/method_status.o
Compiling src/brpc/details/naming_service_thread.o
Compiling src/brpc/details/rtmp_utils.o
Compiling src/brpc/details/ssl_helper.o
Compiling src/brpc/details/tcmalloc_extension.o
Compiling src/brpc/details/usercode_backup_pool.o
Compiling src/brpc/builtin/bad_method_service.o
Compiling src/brpc/builtin/bthreads_service.o
Compiling src/brpc/builtin/common.o
Compiling src/brpc/builtin/connections_service.o
Compiling src/brpc/builtin/dir_service.o
Compiling src/brpc/builtin/flags_service.o
Compiling src/brpc/builtin/flot_min_js.o
Compiling src/brpc/builtin/get_favicon_service.o
Compiling src/brpc/builtin/get_js_service.o
Compiling src/brpc/builtin/health_service.o
Compiling src/brpc/builtin/hotspots_service.o
Compiling src/brpc/builtin/ids_service.o
Compiling src/brpc/builtin/index_service.o
Compiling src/brpc/builtin/jquery_min_js.o
Compiling src/brpc/builtin/list_service.o
Compiling src/brpc/builtin/pprof_perl.o
Compiling src/brpc/builtin/pprof_service.o
Compiling src/brpc/builtin/prometheus_metrics_service.o
Compiling src/brpc/builtin/protobufs_service.o
Compiling src/brpc/builtin/rpcz_service.o
Compiling src/brpc/builtin/sockets_service.o
Compiling src/brpc/builtin/sorttable_js.o
Compiling src/brpc/builtin/status_service.o
Compiling src/brpc/builtin/threads_service.o
Compiling src/brpc/builtin/vars_service.o
Compiling src/brpc/builtin/version_service.o
Compiling src/brpc/builtin/viz_min_js.o
Compiling src/brpc/builtin/vlog_service.o
Compiling src/brpc/policy/auto_concurrency_limiter.o
Compiling src/brpc/policy/baidu_naming_service.o
Compiling src/brpc/policy/baidu_rpc_protocol.o
Compiling src/brpc/policy/consistent_hashing_load_balancer.o
Compiling src/brpc/policy/constant_concurrency_limiter.o
Compiling src/brpc/policy/consul_naming_service.o
Compiling src/brpc/policy/couchbase_authenticator.o
Compiling src/brpc/policy/dh.o
Compiling src/brpc/policy/discovery_naming_service.o
Compiling src/brpc/policy/domain_naming_service.o
Compiling src/brpc/policy/dynpart_load_balancer.o
Compiling src/brpc/policy/esp_authenticator.o
Compiling src/brpc/policy/esp_protocol.o
Compiling src/brpc/policy/file_naming_service.o
Compiling src/brpc/policy/giano_authenticator.o
Compiling src/brpc/policy/gzip_compress.o
Compiling src/brpc/policy/hasher.o
Compiling src/brpc/policy/http2_rpc_protocol.o
Compiling src/brpc/policy/http_rpc_protocol.o
src/brpc/policy/http_rpc_protocol.cpp:583:54: warning: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long') [-Wformat]
butil::string_printf("%ldm", cntl->timeout_ms()));
~~~ ^~~~~~~~~~~~~~~~~~
%lld
1 warning generated.
Compiling src/brpc/policy/hulu_pbrpc_protocol.o
Compiling src/brpc/policy/list_naming_service.o
Compiling src/brpc/policy/locality_aware_load_balancer.o
Compiling src/brpc/policy/memcache_binary_protocol.o
Compiling src/brpc/policy/mongo_protocol.o
Compiling src/brpc/policy/nova_pbrpc_protocol.o
Compiling src/brpc/policy/nshead_mcpack_protocol.o
Compiling src/brpc/policy/nshead_protocol.o
Compiling src/brpc/policy/public_pbrpc_protocol.o
Compiling src/brpc/policy/randomized_load_balancer.o
Compiling src/brpc/policy/redis_authenticator.o
Compiling src/brpc/policy/redis_protocol.o
Compiling src/brpc/policy/remote_file_naming_service.o
Compiling src/brpc/policy/round_robin_load_balancer.o
Compiling src/brpc/policy/rtmp_protocol.o
Compiling src/brpc/policy/snappy_compress.o
Compiling src/brpc/policy/sofa_pbrpc_protocol.o
Compiling src/brpc/policy/streaming_rpc_protocol.o
Compiling src/brpc/policy/ubrpc2pb_protocol.o
Compiling src/brpc/policy/weighted_round_robin_load_balancer.o
Packing libbrpc.a
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libbrpc.a(atomicops_internals_x86_gcc.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libbrpc.a(asan_invalid_access.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libbrpc.a(thread_restrictions.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libbrpc.a(baidu_naming_service.o) has no symbols
/Library/Developer/CommandLineTools/usr/bin/ranlib: file: libbrpc.a(giano_authenticator.o) has no symbols
Linking protoc-gen-mcpack
Linking libbrpc.dylib
Copying to output/include
Copying to output/lib
Copying to output/bin
成功