Skip to content

Ubuntu 22.04 编译报错,修改CMakeLists后成功 #3203

@Searion

Description

@Searion

Describe the bug

[95/336] Building CXX object src/CMakeFiles/SOURCES_LIB.dir/brpc/builtin/vlog_service.cpp.o
FAILED: src/CMakeFiles/SOURCES_LIB.dir/brpc/builtin/vlog_service.cpp.o -I/home/buildarea/brpc-1.14.1-src/src -I. -I/home/include -Isrc -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/builtin/vlog_service.cpp.o -MF src/CMakeFiles/SOURCES_LIB.dir/brpc/builtin/vlog_service.cpp.o.d -o src/CMakeFiles/SOURCES_LIB.dir/brpc/builtin/vlog_service.cpp.o -c /home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp
/home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:29:44: error: expected class-name before '{' token
29 | class VLogPrinter : public VLogSitePrinter {
| ^
/home/buildarea/brpc-1.14.1-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/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:34:43: error: expected unqualified-id before '&' token
34 | void print(const VLogSitePrinter::Site& site) {
| ^
/home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:34:43: error: expected ')' before '&' token
34 | void print(const VLogSitePrinter::Site& site) {
| ~ ^
| )
/home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:34:43: error: expected ';' at end of member declaration
34 | void print(const VLogSitePrinter::Site& site) {
| ^
| ;
/home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:34:45: error: 'site' does not name a type
34 | void print(const VLogSitePrinter::Site& site) {
| ^~~~
/home/buildarea/brpc-1.14.1-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/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:65:48: error: 'VLogRequest' in namespace 'brpc' does not name a type
65 | const ::brpc::VLogRequest*,
| ^~~~~~~~~~~
/home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:66:42: error: 'brpc::VLogResponse' has not been declared
66 | ::brpc::VLogResponse*,
| ^~~~~~~~~~~~
/home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp: In function 'void brpc::default_method(google::protobuf::RpcController*, const int*, int*, google::protobuf::Closure*)':
/home/buildarea/brpc-1.14.1-src/src/brpc/builtin/vlog_service.cpp:85:5: error: 'print_vlog_sites' was not declared in this scope
85 | print_vlog_sites(&printer);
| ^~~~~~~~~~~~~~~~

To Reproduce
编译选项 -DWITH_SNAPPY=ON -DWITH_GLOG=ON

Expected behavior
编译通过

Versions
OS: Ubuntu 22.04
Compiler:
brpc: 1.14.1 1.16.0
protobuf: 1.16.0

Additional context/screenshots
发现CMakeLists中149行 set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -O2 -pipe -Wall -W -fPIC -fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer")改为
set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CXX_FLAGS } -O2 -pipe -Wall -W -fPIC -fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer")
就可以编译成功,感觉这一行是个bug

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions