1、下载protobuf, protobuf-all-3.5.1.tar.gz 压缩文件
https://github.com/google/protobuf/releases
2、解压安装
tar -zxvf protobuf-2.6.1.tar.gz
cd protobuf-2.6.1/
./configure --prefix=/usr/local/protobuf
make
make check
sudo make install
protoc --version
3、配置库路径
(1)打开profile文件
vim /etc/profile
(2)在该文件最后添加环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib
export PATH=$PATH:/usr/local/protobuf/bin
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
(3)让配置文件生效
source /etc/profile
4、测试程序
以下是我写的一个测试程序makefile,其中包含了protobuf的编译使用
proj_name=service_com
service_com_src=$(wildcard ./*.cc)
net_src=$(wildcard ../net/*.cc)
protos_src=$(wildcard ../../protos/bin/cpp/*.cc)
service_com_obj=$(patsubst %.cc, %.o,$(service_com_src))
net_obj=$(patsubst %.cc, %.o, $(net_src))
protos_obj=$(patsubst %.cc, %.o, $(protos_src))
net_inc=-I../net
third_inc=-I../third-party/threadpool
protos_inc=-I../../protos/bin/cpp
protobuf_inc=-I/usr/local/protobuf/include
target=$(proj_name)
$(target):$(service_com_obj) $(net_obj) $(protos_obj)
gcc $^ `pkg-config --cflags --libs protobuf` -lstdc++ -lpthread -o $@
%.o:%.cc
gcc -c $< $(net_inc) $(third_inc) $(protos_inc) $(protobuf_inc) -std=c++11 -o $@
.PHONY:clean
clean:
-rm $(service_com_obj) -f
-rm $(net_obj) -f
-rm $(protos_obj) -f