cmake

    [OpenSource 사용하기] fmt: C++ formatting library (feat. python styled print)

    본 문서는 'OpenSource 뜯어보기'라는 프로젝트의 일환으로. fmt라는 C++ formatting library를 설치, 실행 등 사용하는 방법에 대해 정리해보았습니다. 해당 라이브러리는 python처럼 print를 할 수 있게 도와주는 라이브러리로 C++20 부터는 std::format으로 사용할 수 있으니 참고하시기 바랍니다. 💡 본 문서는 'OpenSource 사용하기'라는 프로젝트의 일환으로. gRPC라는 c++ RPC library를 설치, 실행 등 사용하는 방법과 더불어, library 내 구조, 소스 분석 및 패턴 분석까지 다룰 예정이니 해당 오픈소스에 관심이 있다면 봐두길 권장합니다. 1. 오픈소스의 목적 1.1 '{fmt} C++ formatting library'란? Simple..

    [CMake] make package 패키지 (feat. cmake install)

    본 문서는 CMake에 패키지 관련 내용을 나열한 문서로, 주로 설치한 패키지를 받아서 사용하기 위해 사용합니다. Package Package의 구성 보통 패키지라고 하면 Chocolaty, NuGet, RPM, Brew처럼 Package Manager 소프트웨어를 통해 다운로드/설치/업데이트해서 사용하는 프로그램들(+ 문서)을 말하는데, C++ 프로그래머들에게 패키지란 개발에 필요한 Library + Manifest에 가까운 것 같습니다. 일반적인 패키지: 실행 프로그램(executable) 문서 파일(license, manual, readme 등) 프로그래밍 패키지: 일반 패키지 + 개발에 필요한 요소들 서브 프로그램(library) 실행 프로그램(test tools, script 등) 소스 코드(i..

    [Error Fix] CMake: undefined reference to 'BIO_write'

    문제상황 openssl을 fetchcontent로 받아온 cmakefile을 cmake로 makefile을 구성. 이후 makefile을 실행시키면...? undefined reference to `BIO_write' 위와 같은 'BIO_' 변수를 찾을 수 없는 문제가 발생. 해결방안 기존: set(CMAKE_CXX_STANDARD 20) 변경: set(CMAKE_CXX_STANDARD 17) C++의 버전이 높아서 문제인 듯

    [CMake] configure_file(): CMake 변수값을 소스코드에서 사용!

    💡 본 문서는 'CMake 변수값을 소스코드에서 사용하는 방법'에 대해 정리해놓은 글입니다. configure_file을 통해 CMake 변수값을 소스코드에서 사용하는 방법에 대해 정리하였으니 참고하시기 바랍니다. 1. 프로젝트 구성 1.1 CMakeLists.txt 파일: configure_file 사용 CMakeLists.txt에서 설정한 변수값을 소스파일에서도 사용하기 위한 configure_file 함수를 사용하는 방법은 다음과 같습니다! 차근차근 CMakeLists.txt을 왜 이렇게 작성했는지, 소스에 대해 설명해드리겠습니다. ... option(USING_NLOHMANNJSON "using nlohmann_json" ON) option(USING_LEVELDB "using leveldb" O..

    [CMake] function: 반복되는 작업은 함수화하자!

    본 문서는 'cmake function'에 대해 다룹니다. 이는 CMakeLists.txt파일을 작성하는 과정에서 반복되는 과정을 함수로 정형화하는 과정이니 반복되는 cmake문을 작성하고 계셨던 분들은 참고 바랍니다. function function에 대한 기본적인 구조는 다음과 같다. function( [ ...]) endfunction() 기본적으로 function에 있는 argment를 불러오기 위해서는 변수명을 호출하는 것과 유사하게 진행한다. function(fooKeyword country city) message("Address: ${country} ${city}") endfunction() fooKeyword("germany" "munich") 추가적으로 인자에 대한 정보를 뽑기 위해서는..