[1. 개요]
Zookeeper-client 관련하여, C++ 에서 사용하기 위한, 라이브러리 빌드 과정 기술.
- 리눅스 기반.
zookeeper-jute
- 직렬화와 역직렬화(serialization/deserialization) 작업을 수행하는 라이브러리
- Zookeeper의 데이터 객체(예: DataNode, Request 등)들을 네트워크로 전송할 수 있는 형태로 변환하거나,
- 다시 원래 객체로 복원하는 작업을 한다.
[2. Prerequisite]
몇몇 바이너리 필요
- java
- mvn
- cmake
mvn 은 아래에서 원하는 버전으로 다운로드 혹은...
- https://maven.apache.org/download.cgi
- https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.zip
[3. 빌드 과정]
소스코드 다운로드
https://github.com/apache/zookeeper/archive/refs/tags/release-3.5.8.zip
압축파일을 해제하면 아래와 같은 디렉터리를 확인 할 수 있으며,
여기서는 jut 와 client 만 집중하도록 한다.
- zookeeper-assembly/
- zookeeper-client/
- zookeeper-contrib/
- zookeeper-docs/
- zookeeper-it/
- zookeeper-jute/
- zookeeper-recipes/
- zookeeper-server/
먼저, zookeeper-jute 로 및 mvn 을 이용하여 compile 을 진행하다.
- cd zookeeper-jute
- mvn compile
성공 메시지를 확인하고 나면,
- [INFO] BUILD SUCCESS
zookeeper-client 로 이동한다.
이동하면, generated 라는 디렉터리를 확인 할 수 있다.
- cd ../zookeeper-client/zookeeper-client-c
이 후, CMakeLists.txt 를 수정하도록 한다.
- DEFAULT_WANT_CPPUNIT 가 ON 으로 되어 있는 부분을 OFF 로 수정한다.
이제, cmake 와 make 를 이용하여 빌드를 마무리한다.
- mkdir build
- cd build
- cmake ..
- make
생성 된 정적 라이브러리를 확인한다.
- libhashtable.a
- libzookeeper.a
[4. ref]