https://www.jianshu.com/p/83fde1089fea
1 소스 다운로드
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf/
git submodule update --init --recursive
./autogen.sh
2 개 준비
를 빼고, 다음과 같은 도구를 보장 설치하기 전에 자동 설치 :
autoconf
automake
libtool
make
g++
unzip
우분투 / 데비안에, 당신은 그들과 함께 설치할 수 있습니다 :
$ sudo는 apt-get을 설치 autoconf를 automake에 libtool을 곱슬 곱슬하게 g ++ 압축 해제
3 설치 protobuf
그런 다음 (자동화 된 스크립트를 기록 할 수 있으며, 단계별로 수행 할 필요가 없습니다) 환자, 조금 더 설치로 다음 명령을 실행합니다 :
./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.
이 일반에서
/ usr / 지방 / lib 디렉토리 경로에서 libprotobuf 라이브러리
일반적으로 protoc에서 / usr / 지방 / 빈 경로
4 환경 구성
경로에 따라 다음의 환경 구성, 어디에 두 개 이상의 파일, 내 실제 환경 설정에서 다음 명령을 특정 경로 특정 변경
$ sudo vim /etc/profile
추가
export PATH=$PATH:/usr/local/bin/
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
저장 실행
source /etc/profile
5 구성 동적 라이브러리 경로
sudo vim /etc/ld.so.conf
추가
/usr/local/protobuf/lib
그리고 루트로 동적 라이브러리 경로를 업데이트
ldconfig
./configure -prefix=/usr/local/
sudo make #要编译很久
sudo make check
sudo make install
오류 사례 1 :
구성 : 오류 : 유효하지 않은 변수 이름 :`-prefix '
올바른 형식 : 접두사의 앞에 "-"를 "-"
例如 : ./ 구성 --with-http_stub_status_module "--prefix =는 / usr / 웹 서비스 / nginx를"--with-PCRE = / 가정 / 탕 / 下载 /pcre-8.20
오류 사례 2 :
나는이 때 도우는 실수를
v2x @ 우분투 : ~ / 바탕 화면 / protoBuf / protobuf-3.6.1 $의 sudo는 메이크업은
모든 재귀 할
디렉토리를 입력 '/home/v2x/Desktop/protoBuf/protobuf-3.6.1'메이크업 [1]
모든 결정을.
메이크업 [2] : 입력 디렉토리 '/home/v2x/Desktop/protoBuf/protobuf-3.6.1'
떠나 디렉토리 '/home/v2x/Desktop/protoBuf/protobuf-3.6.1'메이크업 [2]
SRC의 모든 만들기
확인 [2] : 디렉토리 '/home/v2x/Desktop/protoBuf/protobuf-3.6.1/src'입력
depbase을 =`에코 / protobuf / 스텁 / bytestream.lo 구글 | SED의 | [^ /] * $ | .deps / & |;의 | \ $ .lo || ''; \
../-libtool --tag = CXX --mode = 컴파일 g ++ -DHAVE_CONFIG_H -I. -I .. -pthread -DHAVE_PTHREAD -DHAVE_ZLIB = 1 = 1 - 벽 -Wno 사인온 비교 -O2 -g -std = C ++ 11 -DNDEBUG -MT 구글 / protobuf / 스텁 / bytestream.lo -MD -MP -MF $ depbase.Tpo -c -o / protobuf / 스텁 / bytestream.lo 구글 / protobuf / 스텁 / bytestream.cc && \ 구글
MV -f $ depbase.Tpo $ depbase.Plo
/ 빈 / bash는 : 라인 1 :. ./-libtool : 권한이 거부
3969 : 실패 '/ protobuf / 스텁 / bytestream.lo 구글에서'대상에 대한 조리법 메이크
*** [구글 / protobuf / 스텁 / bytestream.lo] 오류 126 : 메이크업 [2]
메이크업 [2 ] : 디렉토리 '/home/v2x/Desktop/protoBuf/protobuf-3.6.1/src'떠나
1537 : 메이크 대상에 대한 조리법을 '모든 재귀'실패
메이크업 [1] : *** [모든 재귀] 오류 1
메이크업은 [1] : 디렉토리 '/home/v2x/Desktop/protoBuf/protobuf-3.6.1'떠나
1444 : 메이크 대상에 대한 조리법을 '모두'실패
문제 :
파이썬 使用 protobuf 出错 : protoc : 오류를로드 공유 라이브러리 상태 : libprotoc.so.9가 : 공유 열 수 없습니다 개체 파일 : 없음 같은 ...
해결 방법 : 리눅스 탭 명령 : 수출 LD_LIBRARY_PATH = / usr / 지방 / lib 디렉토리