본문 바로가기

반응형

개발자/C++(Linux, Window)

Unit test C++ gtest gtest란? Google Test Framework로 유닛 테스트에 사용됨. Google Test는 Google의 특정 요구사항 및 제약사항을 기반으로 테스트 기술팀에서 개발한 Testing 프레임워크임. gtest Git 링크 https://github.com/google/googletest 컴파일러 C ++ 11 표준 이상을 준수하는 코드베이스 및 컴파일러가 필요함. gcc 5.0 이상 clang 5.0 이상 MSVC 2015+ 사용 가능 OS Linux, Windows, Mac 왜 Google Test를 사용해야 하나? 1. 테스트는 독립적이고 반복가능해야 합니다. gtest는 디버깅을 빠르게 할 수 있도록 테스트를 분리시켜 실행할 수 있도록 해 줌. 2. 테스트는 조직화가 잘 되어있으며 테스트되.. 더보기
CMake 총정리 및 자세한 설명 C++ 프로젝트를 위한 CMake 사용법 CMake 사용법 실행 파일 및 라이브러리 만들기 CMake 란? CMake 는 빌드 파일을 생성해주는 프로그램 입니다. 다시 말해 CMake 를 통해서 프로젝트를 빌드를 하는 것이 아니라, CMake 를 통해서 빌드 파일을 생성하면 빌드 프로그램을 통해서 프로젝트를 빌드 하는 것입니다. 예를 들어서 make 를 사용한다면 CMake 를 통해서 Makefile 을 생성할 것이고, 요즘 핫한 Ninja 를 사용한다면 CMake 를 통해서 .ninja 빌드 파일을 만들어줄 것입니다. Ninja 빌드 시스템 아무튼, 이 부분에 대해서 많은 사람들이 혼동하고 계시는데, 다시 한 번 강조하자면 CMake 는 빌드 프로그램 아니라 빌드 파일을 생성하는 프로그램 입니다. CM.. 더보기
Visual Studio 디버깅 시 시간 많이 걸릴 때 체크 필요 Visual Studio에서 프로젝트 디버깅 시(F5) 다음과 같이 ‘Microsoft 기호 서버에서 로드하는 중’ 이라는 내용이 뜨면서 디버깅 시간이 오래 걸리는 경우가 있습니다. 이는 프로그램에 대한 디버깅 정보를 저장하는 기호 파일(Symbol File)이 로드되지 않았기 때문에 Microsoft 서버에서 기호 파일을 로드 하는 과정에서 시간이 오래 걸리게 됩니다. Microsoft 서버에서 기호 파일을 로드 하지 않으려면 다음과 같이 해주면 됩니다. 1. Visual Studio에서 디버그 -> 옵션을 클릭합니다. 2. 옵션창에서 디버깅 -> 기호에서 기호 파일(.pdb) 위치에서 Microsoft 기호 서버를 체크 해제한 후 확인을 클릭합니다. 추가 예시 "C:\Windows\System32\r.. 더보기
C++ Lambda 사용 이유 및 정리 C++에는 lambda라는 문법이 존제합니다. 원래 이 lambda는 boost라는 라이브러리에서 제공하는 함수였지만 지금은 modern c++로 넘어가면서 이 기능을 기본적으로 지원하게 되었습니다. 출처 : https://modoocode.com/196 ● [] 캡쳐 블록 (사용시 외부 변수를 캡쳐해 람다 몸통에서 사용 가능) ● () 전달 인자 ● -> 반환 타입 ● {} 함수 몸통 (※Lambda는 기본적으로 캡쳐 블록'[]', 전달인자 '()', return type을 생략할 수 있습니다.) 우선!! 왜 사용하는지 부터 설명해 보겠습니다. 람다는 함수 객채와 함수 포인터의 장점만을 가지고 있습니다. 1. 함수 객채와는 다르게 class를 선언할 필요가 없다. (즉, 코드의 길이가 줄어든다.) 2... 더보기