Resolving Protobuf Configuration Issue Without Sudo Access

Resolving Protobuf Configuration Issue Without Sudo Access

When compiling projects that depend on the Protocol Buffers (protobuf) library, you may encounter configuration errors if the library is not found. In environments where you don't have sudo privileges, the solution requires a bit more effort.

Problem Description

During the CMake build configuration process, you might encounter an error like:

复制代码
Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)

This suggests that CMake is unable to locate the protobuf libraries and include directories.

Solution

1. Download Protobuf Source

First, obtain the Protobuf source code from the official repository:

bash 复制代码
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-all-3.17.3.tar.gz

Note: Adjust the version number and URL based on the version you need.

2. Extract and Build Protobuf

Extract the downloaded source and build it:

bash 复制代码
tar xvf protobuf-all-3.17.3.tar.gz
cd protobuf-3.17.3
./configure --prefix=$HOME/local
make
make install

This compiles and installs protobuf in a local directory within your home directory.

3. Adjust Environment Variables

Update your environment variables to ensure tools and libraries can find your local protobuf installation:

bash 复制代码
export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$HOME/local/lib/pkgconfig:$PKG_CONFIG_PATH

To make these changes permanent, add the above lines to your .bashrc or .bash_profile.

4. Re-run CMake

Navigate back to your project's build directory and run CMake:

bash 复制代码
cd /path/to/your/build/directory
cmake ..

If CMake is still unable to find Protobuf, you can specify the paths manually:

bash 复制代码
cmake -DProtobuf_INCLUDE_DIR=$HOME/local/include -DProtobuf_LIBRARIES=$HOME/local/lib ..
相关推荐
MindCareers2 天前
Beta Sprint Day 1-2: Alpha Issue Fixes Initiated + Mobile Project Setup
android·c语言·数据库·c++·qt·sprint·issue
不过如此19513 天前
Python操作Jira实现不同项目之间的Issue同步
python·jira·issue
安得权9 天前
使用GitHub CLI(gh)来创建 GitHub Issue
github·issue
charlee4413 天前
Git使用经验总结9-Git提交关联到Issue
git·issue
沟通qq 192263821 天前
基于CNN-GRU-SE注意力机制的数据分类预测模型:融合卷积神经网络、门控循环单元与SE注意...
issue
summer_west_fish3 个月前
Troubleshooting Issue for Integrating Host to K8S
issue
云淡风轻~~3 个月前
怎么提Issue与PR
github·issue·pr
黄金旺铺3 个月前
【GitHub Issue Fetcher】 轻松整理项目问题与解决方案知识库
github·issue
Tony Bai4 个月前
【AI应用开发第一课】11 实战串讲:用 Go 构建一个 AI 驱动的 GitHub Issue 助手
人工智能·issue
jiasting4 个月前
高通平台wifi--p2p issue
asp.net·p2p·issue