首页 > 其他分享 >gRPC cmake Visual Studio编译安装 (全命令行)

gRPC cmake Visual Studio编译安装 (全命令行)

时间:2024-11-14 21:19:15浏览次数:1  
标签:cmake gRPC -- Visual BOOL BUILD OFF

gRPC cmake 编译安装 (全命令行)

重要前言: 所有在引用框中的命令都不要输入!!
cmake --install .			# 在引用框中的不要输入到命令行
cmake --install . --config Debug		# 命令没有被引用框包裹, 需要输入到命令行中

0x00 环境配置

vs2022, git, cmake, Powershell7<管理员> (理论上Powershell5也行)

0x01 源代码下载

注意: 建议使用git clone的方式下载, 如果是通过github的Release下载的, 你得手动的配置gRPC的三方依赖(编译的时候非常麻烦).

git clone --recurse-submodules -b v1.67.1 --depth 1 --shallow-submodules https://github.com/grpc/grpc grpc-1.67.1

--recurse-submodules或者--recursive(老版本git): 表示递归clone处理gRPC的子模块依赖. 功能基本相同,但建议使用更新的 --recurse-submodules.

--depth 1: 创建浅克隆, 表示仅仅clone提交的最上层, 不用处理所有的提交记录.

--shallow-submodules: 配合--depth 1使用, 将浅克隆行为应用到子模块。也就是说,对于每个子模块,也只会克隆最近的一次提交。

你可以根据实际情况修改版本, 我这里是 v1.67.1


0x02 cmake编译前的配置

在项目中建立一个临时编译目录, (我这里使用的是powershell可使用mkdir, 如果你没有mkdir命令, 请下载最新的PowerShell) (不要使用古老的cmd了...)

mkdir cmake_build
cd cmake_build

cmake指定源码位置和编译位置(我这里优先使用命令的方式, 如果需要图形化的方式(cmake-gui)也有说明)

cmake -S .. -B . -L

-S 指定source目录, -B 执行build目录, -L 查看项目的一些编译选项

如果你不是和我一样在Windows环境下, 或者你想使用别的编译器(比如mingw-w64), 你可以使用-G参数指定构建编译器, 在cmake --help中可以看到cmake默认使用的编译器.

PS C:\code_dependencies\code_sources\grpc-1.67.1\cmake_build> cmake -S .. -B . -L
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045.
-- ........... 此处省略
--
-- 27.2.0
-- Configuring done (1.0s)
-- Generating done (5.2s)
-- Build files have been written to: C:/code_dependencies/code_sources/grpc-1.67.1/cmake_build
-- Cache values
ABSL_BUILD_TESTING:BOOL=OFF
ABSL_BUILD_TEST_HELPERS:BOOL=OFF
ABSL_GOOGLETEST_DOWNLOAD_URL:STRING=
ABSL_LOCAL_GOOGLETEST_DIR:PATH=/usr/src/googletest
ABSL_PROPAGATE_CXX_STD:BOOL=OFF
ABSL_USE_EXTERNAL_GOOGLETEST:BOOL=OFF
ABSL_USE_GOOGLETEST_HEAD:BOOL=OFF
ABSL_USE_SYSTEM_INCLUDES:BOOL=OFF
BUILD_SHARED_LIBS:BOOL=OFF
BUILD_TESTING:BOOL=ON
CARES_BUILD_CONTAINER_TESTS:BOOL=OFF
CARES_BUILD_TESTS:BOOL=OFF
CARES_BUILD_TOOLS:BOOL=ON
CARES_INSTALL:BOOL=ON
CARES_MSVC_STATIC_RUNTIME:BOOL=OFF
CARES_RANDOM_FILE:STRING=/dev/urandom
CARES_SHARED:BOOL=OFF
CARES_STATIC:BOOL=ON
CARES_STATIC_PIC:BOOL=OFF
CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=C:/code_dependencies/grpc
EXECINFO_LIBRARY:FILEPATH=EXECINFO_LIBRARY-NOTFOUND
INSTALL_BIN_DIR:PATH=C:/code_dependencies/grpc/bin
INSTALL_INC_DIR:PATH=C:/code_dependencies/grpc/include
INSTALL_LIB_DIR:PATH=C:/code_dependencies/grpc/lib
INSTALL_MAN_DIR:PATH=C:/code_dependencies/grpc/share/man
INSTALL_PKGCONFIG_DIR:PATH=C:/code_dependencies/grpc/share/pkgconfig
LIBRT:FILEPATH=LIBRT-NOTFOUND
RE2_BUILD_TESTING:BOOL=ON
USEPCRE:BOOL=OFF
gRPC_ABSL_PROVIDER:STRING=module
gRPC_BUILD_CODEGEN:BOOL=ON
gRPC_BUILD_GRPCPP_OTEL_PLUGIN:BOOL=OFF
gRPC_BUILD_GRPC_CPP_PLUGIN:BOOL=ON
gRPC_BUILD_GRPC_CSHARP_PLUGIN:BOOL=ON
gRPC_BUILD_GRPC_NODE_PLUGIN:BOOL=ON
gRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN:BOOL=ON
gRPC_BUILD_GRPC_PHP_PLUGIN:BOOL=ON
gRPC_BUILD_GRPC_PYTHON_PLUGIN:BOOL=ON
gRPC_BUILD_GRPC_RUBY_PLUGIN:BOOL=ON
gRPC_BUILD_MSVC_MP_COUNT:STRING=0
gRPC_BUILD_TESTS:BOOL=OFF
gRPC_CARES_PROVIDER:STRING=module
gRPC_DOWNLOAD_ARCHIVES:BOOL=ON
gRPC_INSTALL:BOOL=ON
gRPC_INSTALL_BINDIR:STRING=bin
gRPC_INSTALL_CMAKEDIR:STRING=lib/cmake/grpc
gRPC_INSTALL_INCLUDEDIR:STRING=include
gRPC_INSTALL_LIBDIR:STRING=lib
gRPC_INSTALL_SHAREDIR:STRING=share/grpc
gRPC_MSVC_STATIC_RUNTIME:BOOL=OFF
gRPC_PROTOBUF_PROVIDER:STRING=module
gRPC_RE2_PROVIDER:STRING=module
gRPC_SSL_PROVIDER:STRING=module
gRPC_USE_PROTO_LITE:BOOL=OFF
gRPC_ZLIB_PROVIDER:STRING=module
protobuf_ABSL_PROVIDER:STRING=module
protobuf_ALLOW_CCACHE:BOOL=OFF
protobuf_BUILD_CONFORMANCE:BOOL=OFF
protobuf_BUILD_EXAMPLES:BOOL=OFF
protobuf_BUILD_LIBPROTOC:BOOL=OFF
protobuf_BUILD_LIBUPB:BOOL=ON
protobuf_BUILD_PROTOBUF_BINARIES:BOOL=ON
protobuf_BUILD_PROTOC_BINARIES:BOOL=ON
protobuf_BUILD_SHARED_LIBS:BOOL=OFF
protobuf_BUILD_TESTS:BOOL=OFF
protobuf_DISABLE_RTTI:BOOL=OFF
protobuf_INSTALL:BOOL=ON
protobuf_INSTALL_EXAMPLES:BOOL=OFF
protobuf_JSONCPP_PROVIDER:STRING=module
protobuf_MSVC_STATIC_RUNTIME:BOOL=OFF
protobuf_TEST_XML_OUTDIR:BOOL=OFF
protobuf_WITH_ZLIB:BOOL=OFF
utf8_range_ENABLE_INSTALL:BOOL=ON
utf8_range_ENABLE_TESTS:BOOL=OFF

如果你想调整编译选项的开关, 请使用-D选项指定Key=Value, 命令执行过后, 可以不用重复执行.

例如下面的命令指定(在引用框中的不要输入到命令行)

cmake -S .. -B . -Dprotobuf_BUILD_SHARED_LIBS=ON -Dprotobuf_USE_EXTERNAL_GTEST=OFF -Dprotobuf_WITH_ZLIB=OFF

我的配置是这样的, 你可以按需修改. (后面的`符号是powershell的换行输入字符, 如果你是linux, 请替换成\)

cmake -S .. -B .    `
-DgRPC_INSTALL=ON    `
-DCMAKE_INSTALL_PREFIX="C:\code_dependencies\grpc"    `
-DgRPC_BUILD_TESTS=OFF    `
-L    `

这里我们指定了CMAKE_INSTALL_PREFIX="C:\code_dependencies\protobuf", 用于指定grpc安装在什么位置.

0x03 开始编译

cmake --build . --config Debug --target ALL_BUILD -j 4

默认是的config是Release, 我这里编译Debug. (你可以选择Release或者Debug)

这里编译的时间会比较长, 大约10分钟(根据电脑性能而异)

0x04 安装库

cmake --install . --config Debug		# 需要和上面的Release或者Debug相同,

如果你编译的是Debug, 但是没有指定--config Debug会出现问题, 他会按照Release的规则找文件. (导致编译后文件找不到, 安装失败)

到这里就安装结束了, 请你到你设定的cmake选项中CMAKE_INSTALL_PREFIX(也就是安装位置)去找编译好的grpc库文件.

标签:cmake,gRPC,--,Visual,BOOL,BUILD,OFF
From: https://www.cnblogs.com/aquawius/p/18546844

相关文章

  • Visual DSD语法
    VisualDSD语法目录VisualDSD语法词法规则数字字母Integer整数Name名称String字符串Float浮点数Char字符注释保留关键词程序结构Directive指令Declarations声明Processes进程(或者叫过程)Species物种Value值VisualDSD|AndrewPhillipshttps://wwvh.lanzn.com/imBw......
  • VisualVM 使用说明
    VisualVM简介:一个轻量级的Java进程监控软件VisualVM安装介绍(Mac使用brew安装)➜~brewuninstallvisualvm==>UninstallingCaskvisualvm==>BackingApp'VisualVM.app'upto'/opt/homebrew/Caskroom/visualvm/2.1.10/VisualVM.app'==>RemovingAp......
  • 三步解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “M
    文章目录前言一、问题描述二、报错信息三、解决步骤1.下载并安装MicrosoftVisualC++BuildTools2.配置系统环境变量3.重新运行安装指令四、安装成功总结前言本文记录了在使用AnacondaPrompt安装Python程序包时遇到的报错问题,并详细描述了如何通过安装Micros......
  • Visual C++ 6.0中文版安装包下载教程及win11安装教程
    本文分享的是VisualC++6.0(简称VC++6.0)中文版安装包下载及安装教程,关于win11系统下安装和使用VC++6.0使用问题解答,大家在安装使用的过程中会遇到不同的问题,如遇到解决不了的问题请给我留言!一、安装包的下载vc6.0安装包下载连接:https://pan.quark.cn/s/979dd8ba4f35二、......
  • VS Code配置CMake
    在Windows上为VisualStudioCode配置CMake,构建管理CMake项目。1.安装CMake(国内镜像下载更快),安装完成后在终端中输入cmake命令测试是否安装成功。2.为VSCode安装扩展CMake和CMakeTools。3.创建CMake项目。  3.1.打开命令面板(Ctrl+Shift+P)并运行CMake:QuickStart......
  • gcc-13.2 grpc 编译错误(absl-cpp build fails)
    使用gcc-13.2编译absl-cpp会出现以下报错:third_party/abseil-cpp/absl/strings/internal/str_format/extension.h:34:6:warning:elaborated-type-specifierforascopedenummustnotusethe‘class’keyword  34|enumclassFormatConversionChar:uint8_t; ......
  • 地下水数值模拟软件Visual MODFLOW Flex安装,PEST操作方法,Aquifer Test抽水试验设计,地
    主要围绕的目前应用较为广泛的VisualModflowFlex6.1软件版本开展,结合具体应用场景,实例讲解软件的全流程应用过程,包括数据处理分析、数值模型构建以及模拟结果的输出等。本教程有助于提升技术人员地下水模拟软件的操作能力,解决地下水数值模拟技术实施过程中遇到的困难。同时,......
  • 【Visual Studio系列教程】什么是 Visual Studio?
    欢迎阅读本文!这意味着你可能已经准备好开始学习如何使用VisualStudio进行开发。既然如此,我们就不多做废话,直接进入本系列的第1篇文章:《什么是VisualStudio?》。VisualStudio是一款功能强大的开发人员工具。是一个全面的集成开发环境(IDE),可用于编写、编辑、调试和生成......
  • visualvm远程连接Docker容器中部署的java应用并监控
    visualvm远程连接Docker容器中部署的java应用前言jdk1.8中自带了,java11中需要单独下载下载地址visualvm下载地址简介java虚拟机监控,故障排查及性能分析工具。网络配置局域网与docker内网打通,请参考:办公网络与Docker内网网络互通服务于网络服务名称节点IPj......
  • 将学习型索引ALEX的cmake项目在虚拟机上用java运行
    一、环境配置虚拟机:Centos7gcc-v:11.2.1java-version:1.8.0 二、ALEX实现步骤   1、安装c++输入命令sudoapt-getinstallg++出错sudo:apt-get:找不到命令原因:Centos7中用yum命令下载再次输入命令sudoyuminstallg++再次报错已加载插件:fastestmirror,l......