win11 和 ubuntu24.04 c++ 编译 protobuf

先clone最新稳定版本源码

目前v33.5版本 自己选择心仪版本

复制代码
git clone -b v33.5 https://github.com/protocolbuffers/protobuf.git

进入protobuf源码目录

复制代码
cd protobuf

更新依赖库 递归全部

复制代码
git submodule update --init --recursive

Win11

执行构建 vs2026 安装目录自己更换 后面作用:关闭测试 编译为静态库

复制代码
cmake -S . -B build-vs -G "Visual Studio 18 2026" -A x64 -DCMAKE_INSTALL_PREFIX=D:/local/protobuf -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=OFF

开始编译 --parallel 12 //多线程 msvc也可以-- /m:12

复制代码
cmake --build build-vs --config Release --parallel 12

编译成功后 安装

复制代码
cmake --install build-vs --config Release

Ubuntu24.04 (如果是wsl+Ubuntu24.04 如果win11环境有mingw或者msys2等gnu环境 请先清除)

根据官网提示安装好依赖

复制代码
sudo apt update
sudo apt install -y \
  build-essential \
  cmake \
  git \
  autoconf \
  automake \
  libtool \
  pkg-config \
  curl \
  unzip

开始构建

复制代码
mkdir build && cd build

cmake .. \
  -DCMAKE_BUILD_TYPE=Release \
  -Dprotobuf_BUILD_TESTS=OFF \
  -Dprotobuf_BUILD_SHARED_LIBS=ON

make -j$(nproc)
sudo make install
sudo ldconfig

验证是否成功

复制代码
protoc --version

输出类似

复制代码
libprotoc 33.5

库路径

复制代码
ls /usr/local/lib | grep proto
ls /usr/local/include/google/protobuf

编译lua-protobuf

先clone最新源码

复制代码
git clone https://github.com/starwing/lua-protobuf.git

进入lua-protobuf目录

复制代码
cd lua-protobuf

先安装好lua环境源文件和编译好的库文件 !!!

Ubuntu24.04

编译

复制代码
gcc -O3 -shared -fPIC -I "$LUA_HEADERS" pb.c -o pb.so

Win11

先创建 lua-protobuf.slnx(vs2026解决方案)

添加pb.c和pb.h 添加lua源文件目录 重点: 预编译添加 Lua_BUILD_AS_DLL

复制代码
cl /O2 /LD /Fepb.dll /I "$LUA_HEADERS" /DLUA_BUILD_AS_DLL pb.c "$LUA_LIBS"

测试一下

复制代码
lua -e "require('pb'); print('pb ok')"

Enjoy~。~

相关推荐
殳翰7 小时前
下服务器端开发流程及相关工具介绍(C++)
开发语言·c++
落寞的星星7 小时前
这个对象就包含了已经转换好的DFA和各种词法分析器运转所需要的参数。下一步,我们就可以用ScannerInfo对象创建出Scanner对象,请看下面的代码:
开发语言·c#
nothing&nowhere7 小时前
用 Python 做问卷数据清洗:无效样本检测与处理实战
开发语言·python·数据清洗·数据处理·问卷星·问卷星脚本·刷问卷
青瓦梦滋8 小时前
协议定制/序列化-反序列化(Linux视角)
linux·服务器·网络·c++
2601_961593428 小时前
Rust 开发环境配置繁琐?RustRover 开箱即用搞定编码调试
开发语言·后端·macos·rust
HZZD_HZZD8 小时前
DL/T 645-2026新国标深度解读与智能电表协议适配实战:从帧结构变化到Java采集器升级的全链路改造方案
java·开发语言
多加点辣也没关系11 小时前
JavaScript|第4章:类型转换
开发语言·javascript
聪慧的水蜜桃11 小时前
【YFIOs】用C#开发硬件之设备上云
开发语言·c#
yqcoder11 小时前
httpOnly 是什么,又有什么用?
开发语言·前端·javascript
山登绝顶我为峰 3(^v^)311 小时前
C/C++ 交叉编译方法
java·c语言·c++