맥에서 C/C++ 언어 코딩하기

단이·2023년 6월 6일
0

맥으로 공부하려고 Mac용 Visual Studio까지 깔았는데 맥용은 C/C++언어를 위한 통합 개발 환경이 아니라고 함. 그래서 따로 Xcode(Mac과 IOS에서 사용하기 위해 애플이 직접 개발한 IDE)나 Visual Studio Code를 사용하여야 한다고 함. 이 글은 그와 관련해서 공부한 내용을 기록.


✏️Visual Studio Code를 이용하여 C언어 개발 환경 구축하기

visual studio code는 IDE라기 보다는 문서 편집기에 가까운 프로그램이라 여러가지 기능들을 추가로 설치해서 사용해야 된다.
참고 : Mac에서 C언어 개발 환경설정

  1. Visual Studio Code 홈페이지에 들어가서 Visual Studio Code를 다운 받는다.
  2. Visual Studio Code를 실행 후 확장 탭에 들어간다.
  3. C/C++ 검색 후 확장 파일을 설치한다. (마이크로소프트에서 만든 파일)
  4. Code Runner 검색 후 확장 파일을 설치한다.
  5. Visual Studio Code 메뉴 막대에서 Code>Preference>Settings 또는 한국어로 Code>기본 설정>설정을 누른다.
  6. 검색 탭에서 run in terminal을 검색
  7. User>Extentions>Run Code configuration 또는 한국어로 사용자>확장>Run Code configuration에서 체크박스 체크를 누른다.
  8. 데스크톱 화면에 C언어 전용 폴더를 하나 생성한다.
  9. 파일 생성 버튼을 눌러 .c 확장자 파일을 만들고 코드를 작성한다.
  10. 우클릭하여 Run Code를 하거나 우측 위에 Run Code아이콘을 눌러 실행시킨다.

만일 터미널에

Undefined symbols for architecture arm64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

오류가 뜬다면 cmd + s 를 눌러 파일을 저장한 후 다시 Run Code를 해보길 바람.


✏️Xcode로 C/C++언어 개발 환경 구축하기

참고: Mac에서 C언어 개발 환결설정

  1. App Store에 들어가서 Xcode를 설치한다.
  2. 동의 여부를 묻는 팝업이 나타나면 Agree 클릭
  3. Create a new Xcode project 클릭
  4. macOS를 선택 후 Command Line Tool 선택한 후 Next 클릭
  5. 필수 정보 Product Name, Organization Identifier 입력 후 언어 C 선택
  6. 프로젝트 생성 폴더 선택 후 Source Control(깃에서 소스 관리 용)해제 후 Next 클릭
  7. main 파일 클릭 후 간단한 소스코드 작성 후 ▶ 눌러 빌드 및 실행해보기
  8. 하단에 실행 결과가 뜨면 구축 성공

근데 필자는 Xcode는 설치만 해놓고 iterm2에서 vim을 사용할 것이다. 그게 더 익숙하고 호환성이 좋고 편하기 때문이다.


✏️Terminal에서 Vim으로 C언어 사용

참고: 완벽한 Mac 작업환경 세팅하기 (vim, zsh, iterm)

vim은 마우스를 사용하지 않고 오로지 키보드로만 작성 가능한 편집기로써 사랑받고 있다.

필자는 iterm2를 사용한다. terminal을 사용해도 무관
iterm2 커스텀을 하는 걸 추천

1. vim 버전 확인

vim은 자동적으로 macos에 설치 돼 있다.

최근에 vi 커맨드는 vim(vi improved) 커맨드와 동일하게 동작한다고 한다.

vi --version

2. vimrc파일 설정

vimrc파일은 홈 디렉토리에 숨겨진 파일로 존재하는 vim텍스트 편집기의 설정 파일으로, vim의 동작을 지정할 수 있게 해주는 파일이다.

https://github.com/amix/vimrc 이 분의 vimrc파일이 기본적인 세팅에 도움이 된다.

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh

Installed the Ultimate Vim configratuon successfully! Enjoy :-) 라고 하면 설치가 완료된 것이다.
아래는 참고한 글에서의 추가적으로 넣으신 설정들인데 뭐 하는 설정인지 잘 모르겠어서 알아본 설명을 추가하고, 내가 넣은 설정만 적어보았다.

cat <<EOF >> ~/.vimrc "vimrc파일에 아래 줄들을 추가
set hlsearch "vim에서 검색 시 결과 하이라이트 표시
set nu "줄 번호 표시
set autoindent "자동 들여쓰기
set scrolloff=2 "스크롤 오프셋을 2로 설정
set ts=4 "탭 간격 4로 설정
set sts=4 "들여쓰기로 사용되는 스페이스 간격을 4로 설정
set sw=1 "스크롤바 너비를 1로 설정
set autowrite "버퍼를 스위치할 때 변경된 내용들을 자동으로 저장
set autoread "외부에서 변경된 파일 감지 후 자동으로 다시 읽음
set cindent "C언어 스타일의 들여쓰기
set bs=eol,start,indent "백스페이스를 사용해 개행문자, 시작 위치, 들여쓰기 삭제
set history=256 "명령어 히스토리 크기 256으로 설정
set shiftwidth=4 "자동 들여쓰기와 시프트 명령에 사용되는 너비를 4로 설정
set showmatch "대괄호와 같이 매치되는 괄호를 하이라이트
set smartcase "검색에서 대소문자 구분
set smarttab "스마트 탭을 사용해 탭과 스페이스를 혼용
set smartindent "스마트 인덴트를 사용하여 새로운 줄을 들여쓰기(자동 들여쓰기)
set softtabstop=4 "탭이 입력될 때의 공백 수 4
set ruler "현재 커서 위치에 대한 행 및 열 번호를 화면 하단에 표시
set incsearch "검색 패턴을 입력하는 동안 매칭되는 문자열 표시
set encoding=utf-8 "UTF-8 방식을 사용하여 한글입력 시 깨지지 않게 함
EOF

아래는 복사용, 바로 터미널에 붙여넣기

cat <<EOF >> ~/.vimrc <<-EOF
set hlsearch
set nu
set autoindent
set scrolloff=2
set ts=4
set sts=4
set sw=1
set autowrite
set autoread
set cindent
set bs=eol,start,indent
set history=256
set shiftwidth=4
set showmatch
set smartcase
set smarttab
set smartindent
set softtabstop=4
set ruler
set incsearch
set encoding=utf-8
EOF

필요할 시 다른 명령어들도 추가하면 좋다!

3. 기본적인 명령어

터미널에서 입력

vi test.c #vi편집기로 test란 이름의 .c파일을 생성
gcc -o test test.c #gcc컴파일러로 컴파일, -o 옵션으로 test.c의 실행 파일 이름 test로 지정
clang test.c -o test #clang컴파일러로 컴파일, -o 옵션으로 test.c의 실행 파일 이름 test로 지정
./test #test실행 파일 실행

⭐️ gcc는 좀 더 오래되고 많은 언어를 지원하며 호환성이 높은 컴파일러, Clang은 gcc보다 컴파일 속도가 빠른 컴파일러이다. 원하는 컴파일러를 사용하면 된다. 해당 컴파일러들은 Xcode를 설치하면 알아서 설치 된다!

4. 기본적인 단축기

아래는 vi 편집기 내에서의 단축기

  • i: 현재 커서 위치에서 삽입(insert) 모드로 전환 ➡️ 코드 작성 하면 됨
  • Esc: 삽입 모드에서 일반 모드로 전환 ➡️ 일반 모드가 되면 아래와 같이 vim에서 쓸 수 있는 명령어 입력하면 됨
  • :wq: 현재 파일 저장 후 나가기
  • :q!: 현재 변경사항 저장하지 않고 나가기

실제로 실습을 해보는 것을 추천한다.

0개의 댓글