2016/10/19

Build Zint static library on windows

ZXing 자바 버전에는 바코드를 생성할 수 있지만 cpp 버전인 ZXing cpp에는 바코드 생성 기능이 포함되저 있지 않았다. 그래서 바코드를 생성할 수 있는 라이브러리를 찾다가 발견한 것이 ZInt 이다.
CMake를 지원하여 쉽게 빌드가 될 줄 알았는데 종속성때문에 쉽게 되지 않았다. ZInt를 빌드하려면 zlib와 libpng가 필요한데 Zint에 포함되어 있지 않아 직접 만들어서 구성을 해 줘야 한다. 직접 빌드하여 ZInt에 포함되어 있는 프로젝트를 빌드해보려 했지만 여러차례 실패하고 직접 프로젝트를 만들어 정적 라이브러리를 생성했다.
잊지 않기 위해 빌드 절차를 기록 했다.

우선 필요한 라이브러리인 zlib와 libpng를 빌드 한다.
CMake를 이용하여 빌드 환경을 구성 하였다.
zlib는 CMAKE_INSTALL_PREFIX만 설정하고 빌드 하였다.
빌드하면 동적 라이브러와 정적 라이브러리를 얻을 수 있다.

libpng의 경우 빌드해 놓은 zlib 정보를 설정해 주어야 한다.
아래 항목에 대하여 입력을 해 준다.
CMAKE_INSTALL_PREFIX: 설치 경로
ZLIB_INCLUDE_DIR: zlib CMAKE_INSTALL_PREFIX/include
ZLIB_LIBRARY_DEBUG: zlib project path/Debug/zlibstaticd.lib
ZLIB_LIBRARY_RELEASE: zlib project path/Release/zlibstatic.lib

이제 본격적으로 ZInt를 빌드할 차례이다.
먼저 Visual Studio에서 정적 라이브러리 프로젝트를 생성하고 ZInt 에 포함되어있는 backend 폴더의 소스를 생성한 프로젝트에 모두 추가한다.
그리고 Preprocessor 설정에 Zint 라이브러리 버전을 아래와 같이 설정해 주어야 한다.
Preprocessor definitions
ZINT_VERSION="2.4.3.0"

다음으로 추가 포함 경로에 zlib와 libpng 의 설치 경로의 include 폴더를 지정한다.
zlib's CMAKE_INSTALL_PREFIX\include
libpng's CMAKE_INSTALL_PREFIX\include

다음, 추가 라이브러리 경로를 Debug와 Release에 맞게 설정 한다.
Additional Library Directories
Debug
zlib project path\Debug
libpng project path\Debug

Release
zlib project path\Release
libpng project path\Release

마지막으로 추가 종속성 라이브러리를 설정 한다.
Librarian -> Additional Dependencies
Debug
zlibstaticd.lib, libpng16_staticd.lib

Release
zlibstatic.lib, libpng16_static.lib

이제 구성을 다 마쳤다. 빌드만 하면 된다.
Visual Studio 2015버전으로 빌드를 했는데 아무런 에러없이 정적 라이브러리를 얻을 수 있었다.
다음에는 만들어진 라이브러리를 이용해서 바코드를 만들어 보겠다.

No comments :

Post a Comment