一般来说,protobuf经常搭配Cmake使用,Cmake有官方的modules,可以通过简单的几个命令protobuf_generate_cpp来生成对应的.pb.cc和.pb.h。 简单的例子: 代码语言:javascript 复制 find_package(ProtobufREQUIRED)include_directories(${Protobuf_INCLUDE_DIRS})include_directories(${CMAKE_CURRENT_BINARY_DIR})protobuf_...
cmake_minimum_required(VERSION 3.0) set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON) project(protobuf_helloworld) include(${CMAKE_CURRENT_LIST_DIR}/../protoc_functions/protoc_generate_files.cmake) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(BUILD_PY_BINDING ON) find_package...
CMake 3.12 以上版本中提供了一个 protobuf_generate 命令, 可以用来生成 protobuf 对应的 C++ 源文件. 现在有如下的 proto 文件: /** * filepath: service/proto/helloworld.proto */service Greeter{rpcSayHello(HelloRequest)returns(HelloReply){}}message HelloRequest{required string name=1;}message HelloR...
一般来说,protobuf经常搭配Cmake使用,Cmake有官方的modules,可以通过简单的几个命令protobuf_generate_cpp来生成对应的.pb.cc和.pb.h。 简单的例子: find_package(Protobuf REQUIRED) include_directories(${Protobuf_INCLUDE_DIRS}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) protobuf_generate_cpp(PROTO...
1. protobuf_generate_cpp生成源码 cmake提供了FindProtobuf模块,可以通过find_package命令查找Protobuf进行使用,官网给的使用示例如下: find_package(Protobuf REQUIRED) include_directories(${Protobuf_INCLUDE_DIRS}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) ...
此外,还可以通过查看FindProtobuf.cmake文件顶部的内容找到定义的更多变量。 生成源代码# Protobuf CMake包包含许多帮助函数,以简化代码生成。在本例中,我们生成的是C++源代码,使用以下代码: PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS AddressBook.proto) ...
双击打开下载解压后的CMake目录/bin/cmake-gui.exe 现在,选择刚才解压的目录,和构建输出目录 然后选择Configure 选择你的VS版本,然后finish即可 点击Generate,成功后,进入生成后的目录 使用VS打开这个项目 编译libprotobuf,protoc,libprotoc这三个 编译就结束了,接下来开始使用protobuf ...
在这里插入图片描述 双击打开下载解压后的CMake目录/bin/cmake-gui.exe 现在,选择刚才解压的目录,和构建输出目录 在这里插入图片描述 然后选择Configure 在这里插入图片描述 选择你的VS版本,然后finish即可 在这里插入图片描述 点击Generate,成功后,进入生成后的目录 ...
双击打开下载解压后的CMake目录/bin/cmake-gui.exe 现在,选择刚才解压的目录,和构建输出目录 然后选择Configure 选择你的VS版本,然后finish即可 点击Generate,成功后,进入生成后的目录 使用VS打开这个项目 编译libprotobuf,protoc,libprotoc这三个 编译就结束了,接下来开始使用protobuf VS中使用protobuf 在自己创建的...
add_custom_command在编译时被触发(对于我的项目)。