Ошибка при сборке проекта с 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
)

Ответы (0 шт):