apache / apache/brpc

1.7.0版本编译问题

Open
#2,529 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
17.6k
Forks
4.1k
Avg merge
2d 12h
Merged PRs (30d)
69

Description

环境:
华为欧拉系统,基于centos发展的开源os;
内核 5.10
gcc version 10.3.1 (GCC)

执行命令:
cmake . -DBUILD_SHARED_LIBS=1 -DBUILD_STATIC_LIBS=1
sh config_brpc.sh --headers="/usr/include" --libs="/usr/lib64 /usr/bin" --with-glog
make -j8 VERBOSE=1
=============================================
[ 47%] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/details/method_status.cpp.o
cd /home/downld/pkg/apache-brpc-1.7.0-src/src && /usr/bin/c++ -I/home/downld/pkg/apache-brpc-1.7.0-src/src -I/home/downld/pkg/apache-brpc-1.7.0-src -DBRPC_WITH_GLOG=0 -DBRPC_WITH_RDMA=0 -DGFLAGS_NS=google -DBTHREAD_USE_FAST_PTHREAD_MUTEX -D__const__=__unused__ -D_GNU_SOURCE -DUSE_SYMBOLIZE -DNO_TCMALLOC -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DBRPC_REVISION=\"1.7.0\" -D__STRICT_ANSI__ -g -O2 -pipe -Wall -W -fPIC -fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer -msse4 -msse4.2 -Wno-aligned-new -DNDEBUG -std=gnu++11 -MD -MT src/CMakeFiles/SOURCES_LIB.dir/brpc/details/method_status.cpp.o -MF CMakeFiles/SOURCES_LIB.dir/brpc/details/method_status.cpp.o.d -o CMakeFiles/SOURCES_LIB.dir/brpc/details/method_status.cpp.o -c /home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/details/method_status.cpp
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:29:44: error: expected class-name before '{' token
29 | class VLogPrinter : public VLogSitePrinter {
| ^
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:34:22: error: 'VLogSitePrinter' does not name a type; did you mean 'VLogPrinter'?
34 | void print(const VLogSitePrinter::Site& site) {
| ^~~~~~~~~~~~~~~
| VLogPrinter
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:34:43: error: expected unqualified-id before '&' token
34 | void print(const VLogSitePrinter::Site& site) {
| ^
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:34:43: error: expected ')' before '&' token
34 | void print(const VLogSitePrinter::Site& site) {
| ~ ^
| )
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:34:43: error: expected ';' at end of member declaration
34 | void print(const VLogSitePrinter::Site& site) {
| ^
| ;
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:34:45: error: 'site' does not name a type
34 | void print(const VLogSitePrinter::Site& site) {
| ^~~~
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:64:6: error: 'VLogService' has not been declared
64 | void VLogService::default_method(::google::protobuf::RpcController* cntl_base,
| ^~~~~~~~~~~
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:65:48: error: 'VLogRequest' in namespace 'brpc' does not name a type
65 | const ::brpc::VLogRequest*,
| ^~~~~~~~~~~
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:66:42: error: 'brpc::VLogResponse' has not been declared
66 | ::brpc::VLogResponse*,
| ^~~~~~~~~~~~
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp: In function 'void brpc::default_method(google::protobuf::RpcController*, const int*, int*, google::protobuf::Closure*)':
/home/downld/pkg/apache-brpc-1.7.0-src/src/brpc/builtin/vlog_service.cpp:85:5: error: 'print_vlog_sites' was not declared in this scope
85 | print_vlog_sites(&printer);
| ^~~~~~~~~~~~~~~~
make[2]: *** [src/CMakeFiles/SOURCES_LIB.dir/build.make:972: src/CMakeFiles/SOURCES_LIB.dir/brpc/builtin/vlog_service.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/downld/pkg/apache-brpc-1.7.0-src'
make[1]: *** [CMakeFiles/Makefile2:265: src/CMakeFiles/SOURCES_LIB.dir/all] Error 2
make[1]: Leaving directory '/home/downld/pkg/apache-brpc-1.7.0-src'
make: *** [Makefile:156: all] Error 2

Contributor guide

Open the contributing guide

Research direction

Reproduce the reported build with CMake, config_brpc.sh, and make -j8 on the stated environment. Start at src/brpc/builtin/vlog_service.cpp and trace the missing VLogSitePrinter, VLogService, VLogRequest, and VLogResponse declarations. Done means the 1.7.0 source builds successfully with the reported commands.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.