You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux(CentOS 7)环境下通过CMAKE从源码构建32位GRPC二进制文件

CentOS 7 下 CMake 编译32位gRPC操作指南

一、前置依赖安装

先安装32位编译所需的基础依赖包,执行以下命令:

yum install -y glibc-devel.i686 libstdc++-devel.i686 zlib-devel.i686 gcc gcc-c++ make cmake

如果你的gRPC依赖其他第三方库,也需要对应安装其.i686后缀的32位版本。

二、需要传递的CMake编译标识

  • CMAKE_C_FLAGS:追加-m32参数,指定C语言编译为32位
  • CMAKE_CXX_FLAGS:追加-m32参数,指定C++语言编译为32位
  • CMAKE_ASM_FLAGS:追加-m32参数,指定汇编代码编译为32位
  • 可选 CMAKE_INSTALL_PREFIX:指定编译后文件的安装路径,避免覆盖系统默认的64位gRPC

三、具体编译操作步骤

  1. 进入gRPC源码目录,创建并进入32位编译专用目录,避免和64位编译产物混淆:
cd /path/to/grpc
mkdir build_32 && cd build_32
  1. 执行cmake命令传入编译标识,你平时编译64位gRPC时添加的其他自定义参数可以直接加在末尾:
cmake .. \
-DCMAKE_C_FLAGS="-m32" \
-DCMAKE_CXX_FLAGS="-m32" \
-DCMAKE_ASM_FLAGS="-m32" \
-DCMAKE_INSTALL_PREFIX=/usr/local/grpc_32
  1. 执行编译和安装:
make -j$(nproc)
make install

四、验证编译结果

执行以下命令确认生成的是32位二进制文件:

file /usr/local/grpc_32/bin/grpc_cpp_plugin

输出结果包含32-bit LSB executable字样即为编译成功。

注意事项

  • 如果你使用外部依赖的protobuf、abseil等库,需要确保这些库也是32位版本,否则会出现链接错误,推荐编译时开启gRPC的FETCHCONTENT_FULLY_DISCONNECTED=OFF参数,让其自动下载适配32位的依赖源码一同编译
  • 若编译过程中出现头文件找不到的错误,优先检查对应依赖的32位版本是否已经安装

内容的提问来源于stack exchange,提问作者Roman Y. Andronov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:39:03