1.7.0版本编译问题
- 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
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