[Google Protobuf] For C++ in Linux - Settings C++ 빌드 환경 만들기

Posted by [하늘이]
2020. 1. 30. 12:20 IT/C, C++
반응형

※ 관련글

  • Google Protobuf
  1. [Google Protobuf] For Java in Android Studio - 설치 및 proto 파일 컴파일
  2. [Google Protobuf] For Java in Android Studio - Gen Java 파일 Android Studio 적용
  3. [Google Protobuf] For Java in Android Studio - Basic example code 기본 소스 코드 사용 샘플
  4. [Google Protobuf] For C++ in Linux - Settings C++ 빌드 환경 만들기
  5. [Google Protobuf] For C++ in Linux - Basic example code 기본 소스 코드 사용 샘플
  • Nanopb Basic type value example
  1. [Nanopb for Google protobuf] Basic type proto sample
  2. [Nanopb for Google protobuf] Basic type proto sample - Sample proto file
  3. [Nanopb for Google protobuf] Basic type proto sample - Encode sample code
  4. [Nanopb for Google protobuf] Basic type proto sample - Decode sample code
  • Nanopb String / bytes value example
  1. [Nanopb for Google protobuf] String/Bytes type proto
  2. [Nanopb for Google protobuf] String/Bytes type proto - Sample proto file 
  3. [Nanopb for Google protobuf] String/Bytes type proto - Encode example code 1
  4. [Nanopb for Google protobuf] String/Bytes type proto - Encode example code 2
  5. [Nanopb for Google protobuf] String/Bytes type proto - Decode example code
  • Nanopb basic submsg example
  1. [Nanopb for Google protobuf] Sub message - Example proto file
  2. [Nanopb for Google protobuf] Sub message - Encode example code
  3. [Nanopb for Google protobuf] Sub message - Decode example code
  • Nanopb array submsg value example
  1. [Nanopb for Google protobuf] Array Sub message - Example proto file
  2. [Nanopb for Google protobuf] Array Sub message - Encode example code
  3. [Nanopb for Google protobuf] Array Sub message - Decode example code


C++ 빌드 환경 만들기



## Ubutu 14.04 에서 빌드하는 것을 기준으로 테스트 해본 사항. ## 

 

# 생성된 proto 파일을 complie 시켜 class 파일을 얻는다.

protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto

* -I : protoc.exe 파일이 있는 경로, 같은 위치면 옵션 없어도 된다.

protoc --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto

* --cpp_out: Class 파일 Gen을 위한 옵션

* $DST_DIR : Class 파일이 생성되는 경로

* $SRC_DIR : 빌드하려는 *.proto 파일이 있는 경로

Ex)
같은 폴더에 poroc.exe를 넣고 compile 폴더 하나 만들어서 아래와 같이 compile 시
protoc --cpp_out=./compile ./addressbook.proto
 .\compile\AddressBookProtos.cpp/AddressBookProtos.h 가 생성된다. 

 

# 빌드하기 위한 빌드 툴을 설치한다.

To build protobuf from source, the following tools are needed:
  * autoconf
  * automake
  * libtool
  * make
  * g++
  * unzip

    $ sudo apt-get install autoconf automake libtool curl make g++ unzip

 

# 빌드를 위한 소스 다운로드 받는다.

아래 Github에서 Cpp 소스를 다운로드 받는다.

https://github.com/protocolbuffers/protobuf/releases

protobuf-cpp-3.11.2.zip

 

# 빌드 방법

To build and install the C++ Protocol Buffer runtime and the Protocol
Buffer compiler (protoc) execute the following:

```shell
     ./configure
     make
     make check
     sudo make install
     sudo ldconfig # refresh shared library cache.

소스 압축을 푼 최상위 경로에서 위 cmd를 수행 시키면 된다.

위 소스 기준 : protobuf-3.11.2$

특별히 문제가 없다면 빌드 및 ldconfig 시 에러가 없다.

가이드 내용을 보면 make check 에서 에러가 생긴 경우 make로 빌드가 완료된 경우 make install 가능하다고 한다.
단, 특정 기능에 문제가 있을 수 있다라고 설명되어 있다. OTL

 



반응형