정글에서 온 개발자
12/26 TIL XCode, C++ snippet 본문
XCode
처음 해봤다. vsc에 비해 터미널이 없어서 불편하다. 아직은 vsc에 비해 뭐가 좋은지 모르겠다. c++로 게임만들기를 따라하면서 기능을 익혀나갈 예정이다.
고생한 것
build가 비활성화 됨
템플릿을 empty로 생성하면 빌드가 바로 안된다. Target 등을 따로 잡아줘야 되는데 설정 연습하기는 좋지만 초보가 하기에는 별로인 것 같다. macOS - commandLineTools 를 클릭해 언어를 c++로 선택했다.
라이브러리를 못 찾음
ctrl+B 를 눌러 빌드를 할 수 있는데, SDL 라이브러리 인식을 못해 계속 뻑이 났다. 원인은 SDL을 x86_64 라이브러리버전이 있는 엉뚱한 곳에서 찾았기 때문인데, 해결은 다음과 같다.
- 프로젝트를 눌러 Targets - Build Settings 에서 Header Search Paths, Header Library Paths를 SDL의 헤더와 라이브러리가 있는 path로 잘 잡아줘야 한다.
- Targets - General에 있는 Frameworks and Library 에서도 라이브러리를 직접 찾아 추가해줘야 한다.
깃을 터미널로 못 씀
gpt가 알려준 Source Control이라는 메뉴도 없었는데, 현재 버전에서는 Integrate로 바뀌었나보다, vsc처럼 멋있게 커맨드를 못 쓰는게 아쉽다.
깃은 토큰을 통해 로그인했는데, 7일짜리다. 그냥 계속 로그인하게 하려면 토큰을 무기한으로 열기는 부담스러운데 방법을 찾아봐야겠다.
결과
C++
숫자, 문자 변환
stirng -> integer : atoi 보다 stoi(const string &str)를 쓰자.
integer -> string : to_string(int num)
패딩
string padded_str = string(len - str.size(), '0') + str
str.insert(s.begin(), len-str.size(), '0')
str.append(len-str.size(), '0')
#pragma once
이 코드가 쓰인 헤더파일이 두번 포함되지 않도록 한다.
include guard 대신 사용할 수 있는 현대적인 방법이다. 그러나 c++ 컴파일러 표준은 아니다.
아래는 include guard
#ifndef EXAMPLE_H
#define EXAMPLE_H
약점은 동일한 이름의 헤더파일이 있을 때 다른 경로에 있을 때 잘 작동하지 않을 수 있다는 것이다.
포함돼야 하는 파일이 포함되지 않을 수 있다.
'TIL' 카테고리의 다른 글
12/27 TIL 게임 객체 모델의 종류 (0) | 2024.12.28 |
---|---|
12/27 TIL 클린 아키텍처 15장~22장 (2) | 2024.12.28 |
12/26 TIL 단위 테스트 1장~2장 (3) | 2024.12.26 |
12/25 TIL SDL 라이브러리, 스크린 테어링, 델타 시간 (1) | 2024.12.25 |
spring (boot) quick start 막혔던 것 - 쉬움 (1) | 2023.12.31 |