Ошибка при сборке проекта с grpc
При сборке проекта следующие ошибки:
undefined reference to `helloworld::Greeter::Service::Service()'
undefined reference to `helloworld::Greeter::Service::~Service()'
undefined reference to `typeinfo for helloworld::Greeter::Service'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
То есть при сборке не видит grpc? я вроде в cmake все указал. Что может быть не так? структура проекта:
.
├── CMakeLists.txt
├── CMakeLists.txt.user
├── helloworld.grpc.pb.cc
├── helloworld.grpc.pb.h
├── helloworld.pb.cc
├── helloworld.pb.h
├── helloworld.proto
└── main.cpp
cmake:
cmake_minimum_required(VERSION 3.5)
project(untitled LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Protobuf REQUIRED)
find_package(gRPC REQUIRED)
message(STATUS "Using gRPC ${gRPC_VERSION}")
set(PROTOS
${CMAKE_CURRENT_SOURCE_DIR}/helloworld.proto
)
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTOS})
#grpc_generate_cpp(GRPC_SRCS GRPC_HDRS . ${PROTOS})
# protoc -I . --cpp_out=. helloworld.proto
# protoc -I . --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` helloworld.proto
add_executable(untitled
main.cpp
${PROTO_SRCS}
${PROTO_HDRS}
${GRPC_SRCS}
${GRPC_HDRS}
)
target_include_directories(untitled
PUBLIC
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
target_link_libraries(untitled
gRPC::grpc++
gRPC::grpc++_unsecure
gRPC::grpc++_reflection
protobuf::libprotobuf
)