使用 -std=c++98
或 -std=c++03
构建的 Google Protocol Buffers(protobuf)版本是 protobuf 2.x 系列。这是因为 protobuf 2.x 是最后一个支持 C++98 和 C++03 标准的版本。
从 protobuf 3.0 开始,库已经不再支持 C++98 和 C++03 标准,转而全面支持更新的 C++11 及以上标准。因此,如果你需要使用 protobuf 并且编译环境只支持 C++98 或 C++03,你应该使用 protobuf 2.x 版本。
你可以通过以下命令安装 protobuf 2.x 版本(以 Ubuntu 为例):
sudo apt-get install libprotobuf-dev protobuf-compiler
或者从源码编译 protobuf 2.x 版本:
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git checkout v2.x.x # 替换为你需要的具体版本号
./autogen.sh
./configure --with-protoc=protoc CXXFLAGS="-std=c++98" # 或者使用 "-std=c++03"
make
sudo make install
请注意,随着时间的推移,protobuf 2.x 系列可能不再接收安全更新或修复,因此如果可能的话,建议升级到支持 C++11 或更高标准的 protobuf 3.x 版本,并在相应的编译环境中使用 -std=c++11
或更高版本的编译选项。
领取专属 10元无门槛券
手把手带您无忧上云