생각의 기록

꿈꾸는 개발자 하늘고래의 프로그래밍 이야기

Open Source Library

[spdlog] 소스 빌드하기

하늘고래c 2022. 7. 15. 17:36

파일 로그를 남겨보자

 

개인적으로 아주 심플한 로그 라이브러리를 만들어 사용하고 있는데, 점차 이런 저런 기능을 추가해야 하는 상황이 생기다보니 그냥 오픈 소스 기반의 라이브러리를 사용하자 생각했고, 그렇게 찾은 라이브러리 입니다.

 

토이 프로젝트에서 주로 사용하기 위한 용도로 아주 고성능의 성능이 필요하진 않기에 다음과 같은 항목을 우선시했습니다. ( 비동기 및 멀티 스레드에 대한 처리는 기본적인 부분이라 고려 항목에서 제외하였습니다. )

 

 ◾ 쉽게 적용 가능할 것

     ◾  다른 의존성이 없어야 함

     ◾  헤더만으로 사용 가능해야 함

 ◾ 포맷 지정 가능

 ◾ 특정 크기 까지만 사용 가능

 

그리고 위 항목과 가장 적합한 라이브러리가 spdlog 였습니다.

 

이제 spdlog를 빌드하고 사용해보도록 하겠습니다.

🚩 관련 글 : [spdlog] 헤더 및 라이브러리 참조

🚩 관련 글 : [spdlog] 파일 로그 남기기

 

spdlog 빌드 하기

spdlog 소스 다운로드

📌 spdlog GitHub 바로가기 : https://github.com/gabime/spdlog

 

GitHub - gabime/spdlog: Fast C++ logging library.

Fast C++ logging library. Contribute to gabime/spdlog development by creating an account on GitHub.

github.com

 

소스를 받기 위해서는 GitHub 페이지에서 Code를 클릭하여 소스를 받거나, git clone 명령으로 저장소를 복제하여 소스를 받을 수 있습니다.

저는 오픈 소스는 git을 통해 관리하고 있기에 저장소 복제를 통해 소스를 받도록 하겠습니다.


spdlog 소스를 다운로드 받을 폴더로 이동 후 git clone 명령으로 소스를 다운로드 합니다.

( 저는 Git Bash를 사용합니다. )

 

# e:\OpenSourceLibrary\spdlog 에 복제
$ cd e:\OpenSourceLibrary

# git clone
$ git clone https://github.com/gabime/spdlog.git
Cloning into 'spdlog'...
remote: Enumerating objects: 24464, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 24464 (delta 5), reused 7 (delta 1), pack-reused 24445
Receiving objects: 100% (24464/24464), 40.30 MiB | 9.98 MiB/s, done.
Resolving deltas: 100% (16171/16171), done.

 

복제가 완료되면 다운로드 받을 폴더에서 소스를 확인할 수 있습니다.

 

소스 폴더


CMake를 사용하여 빌드 프로젝트 생성

CMake를 사용하여 빌드 프로젝트를 생성해야 합니다.

( 저는 Visual Studio 2019 환경에서 x86 및 x64 빌드를 수행하도록 하겠습니다. )

 

# CMake를 사용하여 빌드 프로젝트 생성하기
$ cmake CMakeLists.txt -B [빌드 프로젝트 경로] -G [Generator] -A [Architecture]

# Visual Studio 2019 x86
$ cmake CMakeLists.txt -B Build -G "Visual Studio 16 2019" -A Win32

# Visual Studio 2019 x64
$ cmake CMakeLists.txt -B Build64 -G "Visual Studio 16 2019" -A x64

 

빌드 프로젝트 생성이 정상적으로 완료되면 Build 및 Build64 폴더에서 VS 2019 솔루션 파일을 확인할 수 있습니다.

 

CMake를 사용하여 Build Project 생성


만약 다른 컴파일러로 빌드를 하고 싶다면 [Generator] 부분을 변경하면 됩니다.  cmake /? 명령을 통해 지원하는 Generator를 확인할 수 있습니다.

 

# MSVC Generators 예시
 
Visual Studio 17 2022 = Generates Visual Studio 2022 project files.
                         Use -A option to specify architecture.
Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
                        Use -A option to specify architecture.
Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
                               Optional [arch] can be "Win64" or "ARM".
Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
                               Optional [arch] can be "Win64" or "ARM".
Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
                               Optional [arch] can be "Win64" or "ARM".
Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
                               Optional [arch] can be "Win64" or "ARM".
Visual Studio 10 2010 [arch] = Deprecated. Generates Visual Studio 2010 project files.
                               Optional [arch] can be "Win64" or "IA64".
Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
                              Optional [arch] can be "Win64" or "IA64".

프로젝트 빌드 ( 정적 라이브러리 생성 )

이제 VS 2019로 정적 라이브러리를 만들어 보겠습니다.

저는 플랫폼 및 구성에 맞게 총 8개의 정적 라이브러리를 만들어 사용할 예정입니다.

🚩 관련 글 : Static Library 명명 규칙

 

MD Build

 ◾ libspdlog_MD_2019_x86_v1.10.0.lib

 ◾ libspdlog_MD_2019_x86D_v1.10.0.lib

 ◾ libspdlog_MD_2019_x64_v1.10.0.lib

 ◾ libspdlog_MD_2019_x64D_v1.10.0.lib

 

MT Build

 ◾ libspdlog_MT_2019_x86_v1.10.0.lib

 ◾ libspdlog_MT_2019_x86D_v1.10.0.lib

 ◾ libspdlog_MT_2019_x64_v1.10.0.lib

 ◾ libspdlog_MT_2019_x64D_v1.10.0.lib

 

VS 2019에서Build 폴더 및 Build64 폴더에 있는 솔루션 파일( spdlog.sln )을 오픈합니다.

그리고 spdlog 프로젝트의 대상 이름을 플랫폼 및 구성에 맞게 변경하고 빌드 합니다.

 

출력 폴더에 정적 라이브러리가 생성 된 것을 확인할 수 있습니다.

 

Build 결과


이제 다음 글에서 console 프로젝트를 생성 후 spd 헤더 파일과 생성한 라이브러리를 사용하여 파일 로그를 남겨보겠습니다.

 

'Open Source Library' 카테고리의 다른 글

[spdlog] 로그 남기기 (사용법)  (0) 2022.07.16
[spdlog] 헤더 및 라이브러리 참조  (0) 2022.07.16
CMake 설치하기  (0) 2022.07.01
Git 설치하기 ( 2.37.0 )  (0) 2022.06.30