본문 바로가기

Programming29

JSON Parser - RapidJSON Native JSON Benchmark 비교 자료를 참고하면 어떤 JSON 라이브러리를 선택할지 조금이나마 도움이 될 수 있습니다. 다만 관련 자료가 Rapid JSON 라이브러리 작성자이기 때문에 객관적인 결과일까 하는 의문이 들긴 합니다. 그럼에도 불구하고, 저는 RapidJSON의 헤더 폴더를 개발 프로젝트의 include 디렉토리에 복사만 해서 바로 사용할 수 있어 RapdJSON을 주로 사용하고 있습니다. RapidJSON 사용법 1. GitHub에서 라이브러리를 다운로드 받습니다. $ git clone https://github.com/Tencent/rapidjson.git 2. 헤더파일(include) 폴더를 프로젝트에 복사합니다. 3. API를 사용하여 코드를 작성합니다. // rapidj.. 2022. 5. 1.
C/C++(gcc/g++) 컴파일러(Compiler) 설치 현재 버전 확인하기 $ gcc --version gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 컴파일러 설치하기 $ sudo apt update $ sudo apt install make $ sudo apt install build-essential $ sudo apt install g++-multilib $ sudo apt.. 2022. 4. 28.
GCC 버전과 C++ 버전 매칭 Ubuntu 버전에 따라 기본으로 설치되는 GCC 버전과 C++ 버전이 달라서 헷갈리는 경우가 종종 있어서 참고용으로 매칭 테이블을 작성했습니다. C++11은 GCC 4.8.1 부터 전체 사양을 지원합니다.1998년에 첫 번째 표준인 C++ 98이 공개된 후 오랜 기간동안 정체기를 거치다가 2011년이 되어서야 새로운 개념들이 추가된 버전이 공개되었습니다. C++ 11부터 Modern C++ 이라고 부릅니다.C++GCC versionDescription (compiler option)C++26GCC 14 ~experimental-std=c++2c, -std=gnu++2cC++23GCC 11 ~experimental-std=c++23, -std=c++2b, -std=gnu++2bC++20GCC 8 ~-st.. 2022. 4. 22.
ldconfig 새로 작성한 공유 라이브러리를 사용하기 위해서는 라이브러리를 설치해야 합니다. 설치를 위해 디렉토리를 설정하고 ldconfig로 공유라이브러리 캐시를 다시 설정해야 프로그램에서 정상적으로 해당 공유 라이브러리를 로드할 수 있습니다. 즉, ldconfig는 프로그램을 실행할 때 공유 라이브러리 정보를 읽어 프로그램과 연결해 주는 링커를 설정하는 명령어로 리눅스에 *.so 파일을 인식하지 못할 때 재설정을 통해 읽도록 해 준다. 이 명령어는 존재하는 파일을 조사하고, /etc/ld.so.cache 캐시 파일을 설정하면서 필요한 라이브러리를 적재하고 심볼릭 링크를 만드는 역할을 합니다. /etc/ld.so.conf.d 디렉토리에 conf 파일을 추가/수정하거나 LD_LIBRARY_PATH를 변경할 경우에도 재.. 2022. 4. 17.
LLVM LLVM(이전 이름: Low Level Virtual Machine)은 컴파일러의 기반구조이다. 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구현할 수 있도록 구성되어 있습니다. LLVM은 원래는 저급 가상 기계(low-level virtual machine)의 약자를 가리켰지만, LLVM이 성장하고 다양한 목적을 가지게 되면서 현재는 그 이름을 약자로서 사용하는 것이 아니라 그냥 프로젝트의 이름으로서 사용하고 있습니다. LLVM의 핵심 코드는 'LLVM 라이선스'로 배포되며, 이것은 BSD 라이선스와 비슷한 속성을 가집니다. 즉, LLVM을 사용한 프로그램을 배포하였을 때 해당 소스 코드를 공개/배포해야 하는 의무가 없습니다. 단 LLVM의 프론트.. 2022. 4. 11.