Protobuf находит не ту версию
устанавливал protobuf и grpc по гайдам с официальных сайтов
https://github.com/protocolbuffers/protobuf/blob/master/src/README.md
https://grpc.io/docs/languages/cpp/quickstart/
Server.h Server.cpp - пустые
main.cpp:
#include <iostream>
#include "message_kernel.pb.h"
#include "message_kernel.grpc.pb.h"
#include <grpc/grpc.h>
#include <grpc++/server.h>
#include <grpc++/server_builder.h>
#include <grpc++/server_context.h>
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::Status;
using ServerApi::Person;
using ServerApi::AuthorizationDataRequest;
using ServerApi::AuthorizationDataResponse;
int main() {
std::string login = "user";
std::string password = "user";
ServerApi::AuthorizationDataRequest person;
std::cout << "Create some user: " <<std::endl;
std::cout << "input login: " << login << std::endl;
std::cout << "input pass: " << password << std::endl;
person.set_login(login);
person.set_password(password);
std::cout << "Login: " << person.login() << std::endl;
std::cout << "Password: " << person.password() << std::endl;
return 0;
}
message_kernel.cpp:
syntax = "proto3";
package ServerApi;
import "google/protobuf/wrappers.proto";
service Authorization {
rpc LogIn (AuthorizationDataRequest) returns(AuthorizationDataResponse);
}
message Person {
string name = 1;
string surname = 2;
}
message AuthorizationDataRequest
{
string login = 1;
string password = 2;
}
message AuthorizationDataResponse
{
bool isAuth = 1;
}
cmakelist.txt:
cmake_minimum_required(VERSION 3.10)
project(cpp_server)
#------------------------------------------------------------------------------#
#---------------------SET LOCAL NAME TO LINK COMPONENT-------------------------#
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -lconfig -lconfig++ -Wall -Werror")
set(BOOST_INCLUDE_DIRS "/home/user/CPP_libs/boost_1_75_0/")
set(BOOST_LIBRARIES "/home/user/CPP_libs/boost_1_75_0/stage/lib/")
#------------------------------------------------------------------------------#
#-----------------------INCLUDE HEADER-----------------------------------------#
list(APPEND CMAKE_PREFIX_PATH "/opt/grpc")
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
#------------------------------------------------------------------------------#
#---------------------SET PROTO FILE-------------------------------------------#
set(PROTOS
${PROJECT_SOURCE_DIR}/protos/message_kernel.proto
)
set(PROTO_SRC_DIR ${CMAKE_CURRENT_BINARY_DIR}/proto-src)
file(MAKE_DIRECTORY ${PROTO_SRC_DIR})
#------------------------------------------------------------------------------#
#---------------------FIND PACKAGES--------------------------------------------#
find_package (Boost 1.68 REQUIRED)
find_package (Protobuf REQUIRED)
find_package (gRPC REQUIRED)
#------------------------------------------------------------------------------#
#-----------------------INCLUDE HEADER-----------------------------------------#
if (Boost_FOUND)
include_directories(SYSTEM ${BOOST_INCLUDE_DIRS})
endif ()
include_directories(${PROTO_SRC_DIR})
#------------------------------------------------------------------------------#
#---------------------GENERATE AUTOCODE----------------------------------------#
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_SRC_DIR} ${PROTOS})
grpc_generate_cpp(GRPC_SRCS GRPC_HDRS ${PROTO_SRC_DIR} ${PROTOS})
#------------------------------------------------------------------------------#
#---------------------ADD EXECUTE----------------------------------------------#
add_executable(${SERVER}
${SERVER_SOURCE}
${PROTO_SRCS}
${gRPC_SRCS}
)
add_executable(cpp_server
app/main.cpp
server_kernel/includes/Server.h
server_kernel/src/Server.cpp
${GRPC_SRCS}
)
target_link_libraries(cpp_server ${BOOST_LIBRARIES})
target_link_libraries(cpp_server protos ${PROTOBUF_LIBRARY})
target_link_libraries(cpp_server
gRPC::grpc++_reflection
protobuf::libprotobuf
)
в папке opt/protobuf - протобафа нет, почему? как его туда поставить Вот ошибки которые выскакивают
CMake Warning at /home/user/clion-2020.3.3/bin/cmake/linux/share/cmake-3.17/Modules/FindProtobuf.cmake:500 (message):
Protobuf compiler version 3.15.8 doesn't match library version 3.17.3
Call Stack (most recent call first):
CMakeLists.txt:25 (find_package)
CMake Error at CMakeLists.txt:36 (grpc_generate_cpp):
Unknown CMake command "grpc_generate_cpp".
