.so 依赖目录 cmake_在C++工程中使用grpc(以cmake为例)

之前介绍gprc在linux系统上的编译和安装,这里介绍如何如何在C++工程中引入对gprc库的依赖。以

首先,需要在cmake工程的Modules中加入FindGRPC.cmake和FindProtobuf.cmake这两个文件

32ca5ca58c1a555f7a8163770b04ee1d.png

然后在工程的主CMakeList.txt文件中加入:

#在这里增加包和模块寻找位置

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/Modules)

#关于cmake如何寻找到的protobuf 和grpc的库地址,头文件和实现文件

find_package(Protobuf REQUIRED)

#find_package(gRPC CONFIG REQUIRED) 注意这里不是gRPC的原因是我们已经告知了编译系统在哪里寻找得到gRPC库

find_package(GRPC REQUIRED)

#把所有的protos放在一个目录下面~~~~!~~~~~~

set(PROTOS

core/protos/helloworld.proto

)

#所有要编译好的protos类放在这个目录下,一般来说都会在build目录下面找到

set(PROTO_SRC_DIR ${CMAKE_CURRENT_BINARY_DIR}/core/proto_src)

file(MAKE_DIRECTORY ${PROTO_SRC_DIR})

include_directories(${PROTO_SRC_DIR})

protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_SRC_DIR} ${PROTOS})

grpc_generate_cpp(GRPC_SRCS GRPC_HDRS ${PROTO_SRC_DIR} ${PROTOS})

#将所有的服务放在一个目录中(我们到后面会把现在的http都切换成grpc模式来做)

add_executable(greeter_server

${CMAKE_CURRENT_SOURCE_DIR}/core/src/http://greeter_server.cc

${PROTO_SRCS}

${GRPC_SRCS}

)

target_link_libraries(greeter_server

gRPC::grpc++_reflection

protobuf::libprotobuf

)

因为每个的proto文件都会产生对应的类文件,这里需要新建一个proto_src文件夹,最后使用cmake 检查是否生成了可执行文件

9bf6ebb74efebf84f6fda5ac980e99df.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值