protobuf在Windows下编译生成libprotobufd.lib、libprotobuf-lited.lib、libprotocd.lib

本文详细介绍在Windows环境下编译protobuf的步骤,包括所需工具的安装、环境变量配置、使用git克隆protobuf仓库、编译参数设置及生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在编译前电脑上应该有vs、Windows 版的 git工具  、Windows 版的cmake工具,这些在Windows上都很好安装,另外注意安装完了别忘了在环境变量里面改加一下这些工具的路径

首先下载rotobuf,可以用.bat文件也可以直接去里面的链接到官网下载,.bat文件内容如下:


echo off & color 0A

::设置所需要的Protobuf版本,最新版本可以在github上查到 https://github.com/google/protobuf
set PROTOBUF_VESION="2.6.0-beta-4"
echo %PROTOBUF_VESION%
set PROTOBUF_PATH="protobuf_%PROTOBUF_VESION%"
echo %PROTOBUF_PATH%

git clone -b %PROTOBUF_VESION% https://github.com/google/protobuf.git %PROTOBUF_PATH%

cd %PROTOBUF_PATH%
git clone -b release-1.7.0 https://github.com/google/googlemock.git gmock

cd gmock
git clone -b release-1.7.0 https://github.com/google/googletest.git gtest

pause

 

其中PROTOBUF_VESION="2.6.0-beta-4" 处可以根据自己想要的版本进行更改比如PROTOBUF_VESION="3.0.0-beta-4"

下载完后进入vs本机工具命令行

 

然后 cd D:\protobuf\protobuf_3.0.0-beta-4\cmake

mkdir build & cd build

mkdir x64 & cd x64

mkdir debug & cd debug

cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=../../../../install/x64/debug ../../..

nmake

最后生成

 

 

-- Found Protobuf: /usr/local/lib/libprotobuf.so (found version "3.20.3") -- Found OpenCV: /root/miniconda3/envs/openpose (found version "4.10.0") -- Caffe will be downloaded from source now. NOTE: This process might take several minutes depending on your internet connection. -- Caffe has already been downloaded. HEAD is now at 1807aada Added Ampere arch's (CUDA11) -- Caffe will be built from source now. -- Download the models. -- Downloading BODY_25 model... -- Model already exists. -- Not downloading body (COCO) model -- Not downloading body (MPI) model -- Downloading face model... -- Model already exists. -- Downloading hand model... -- Model already exists. -- Models Downloaded. -- Configuring done (3.7s) -- Generating done (0.0s) -- Build files have been written to: /root/Documents/openpose/build (openpose) root@cnshaw2404:~/Documents/openpose/build# /usr/local/lib/ -bash: /usr/local/lib/: Is a directory (openpose) root@cnshaw2404:~/Documents/openpose/build# cd /usr/local/lib/ (openpose) root@cnshaw2404:/usr/local/lib# ls libprotobuf.a libprotobuf-lite.la libprotobuf-lite.so.31.0.3 libprotobuf.so libprotobuf.so.32 libprotoc.la libprotoc.so.31.0.3 ollama libprotobuf.la libprotobuf-lite.so libprotobuf-lite.so.32 libprotobuf.so.31 libprotobuf.so.32.0.12 libprotoc.so libprotoc.so.32 pkgconfig libprotobuf-lite.a libprotobuf-lite.so.31 libprotobuf-lite.so.32.0.12 libprotobuf.so.31.0.3 libprotoc.a libprotoc.so.31 libprotoc.so.32.0.12 (openpose) root@cnshaw2404:/usr/local/lib# 我想删除这个 protobuf 3.20.3 并使用当前环境中的 25.3
03-18
<think>好的,我需要帮助用户解决如何卸载现有的Protobuf 3.20.3版本并安装Protobuf 25.3的问题。首先,我需要回顾用户提供的引用信息,确保正确理解他们遇到的问题和现有的配置。 用户提到在编译NCNN时遇到了Protobuf版本不匹配的问题,当前安装的是3.20.3,而需要的是3.6.1,但用户希望升级到25.3。这可能是因为用户的项目需要更高版本的Protobuf,或者希望使用最新的功能。不过,这里可能存在混淆,因为用户想从高版本降级到另一个高版本,需要确认是否确实需要替换到25.3,还是解决现有的版本冲突。 首先,用户需要卸载现有的Protobuf 3.20.3。根据常见的Linux软件管理方式,如果Protobuf是通过包管理器(如apt)安装的,可以使用apt remove命令卸载。但如果是通过源码编译安装的,可能需要手动删除相关文件。用户提供的引用[2]中提到使用cmake时指定了Protobuf的路径,说明可能涉及自定义安装路径或源码安装,因此需要确认安装方式。 接下来,安装Protobuf 25.3。通常,从源码编译安装是最可靠的方式,尤其是当特定版本不在官方仓库中时。用户需要下载源码,配置编译选项,然后安装。这里需要注意依赖项,如zlib、abseil等,确保安装过程中不会出错。安装完成后,需要更新动态链接库的缓存,并验证安装是否成功。 另外,用户提到在编译NCNN时指定了Protobuf的路径,这提示在安装新版本后,可能需要调整CMake参数,确保NCNN正确链接到新版本的Protobuf。如果存在多个版本共存的情况,环境变量如PKG_CONFIG_PATH和LD_LIBRARY_PATH的设置也很关键,以避免版本冲突。 需要注意的潜在问题包括:旧版本残留文件导致冲突、依赖项不满足导致编译失败、动态库路径未正确配置导致程序找不到新安装的库。因此,在步骤中需要强调彻底卸载旧版本,安装必要的依赖,以及正确设置环境变量。 最后,生成相关问题需要考虑用户可能的后续需求,比如如何验证安装、处理依赖问题、多版本共存等,这些都能帮助用户进一步解决问题。</think>### 分步解决方案 #### 1. 卸载Protobuf 3.20.3 **通过包管理器卸载(推荐)**: ```bash sudo apt-get remove protobuf-compiler libprotobuf-dev ``` **手动清理残留文件(如果通过源码安装)**: ```bash # 查找protoc路径 which protoc # 删除相关文件(假设安装路径为/usr/local/) sudo rm /usr/local/bin/protoc sudo rm -rf /usr/local/include/google/protobuf/ sudo rm /usr/local/lib/libproto* # 更新动态链接库缓存 sudo ldconfig ``` #### 2. 安装Protobuf 25.3 **从源码编译安装**: ```bash # 安装依赖项 sudo apt-get install autoconf automake libtool curl make g++ unzip # 下载源码 git clone https://github.com/protocolbuffers/protobuf.git cd protobuf git checkout v25.3 # 生成配置脚本 git submodule update --init --recursive ./autogen.sh # 配置编译选项(默认安装到/usr/local/) ./configure --prefix=/usr/local # 编译并安装 make -j$(nproc) sudo make install # 更新动态库链接 sudo ldconfig ``` #### 3. 验证安装 ```bash # 检查版本号 protoc --version # 应显示libprotoc 25.3 ``` #### 4. 配置NCNN项目(参考引用[2]) ```bash # 在NCNN编译命令中指定新版本Protobuf路径 cmake .. -DProtobuf_PROTOC_EXECUTABLE=/usr/local/bin/protoc ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如雾如电

随缘

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值