할때마다 자꾸 까먹어서 아예 블로그에 기록해 둔다. C 언어 기준으로 기록하지만, C++ 용으로 작업할때도 거의 동일하다. vscode 설치 후 C/C++ 확장과 CodeLLDB 확장을 설치한다. 맥에 기본적으로 lldb가 설치되어 있지만 m1 맥에서는 vscode-cpptools에서 지원하지 않아서 디버그가 안된다. 그래서 CodeLLDB 확장을 설치해야 한다. C 로 아무 코드나 작성한 후 터미널 - 기본 빌드 작업 구성 을 선택한다. C/C++: clang 활성 파일 빌드를 선택한다. gcc로 해도 상관은 없지만 맥의 기본 컴파일러는 clang이므로 clang을 선택해 준다. tasks.json 파일이 만들어졌다. 따로 건드리지 않아도 상관없다. 파일 하나만 빌드할 경우 따로 건드리지 않아도 된다. 파일을 여러 개를 빌드해야 할 경우 "${file}" 부분을 "${fileDirname}/**.c" 또는 "${fileDirname}/**.cpp"로 수정한다. tasks.json 창을 닫고 F5 를 눌러 디버그를 실행해 본다. C++ (GDB/LLDB)를 선택한다. <clang - 활성 파일 빌드 및 디버그> 항목이 두 개가 뜨는데 왜 두개가 뜨는지 모르겠다. 위에 것을 선택한다. launch.json 파일이 만들어졌다. 여기서 만들어진 preLaunchTask 부분은 앞서 만들어진 task.json 파일의 label과 일치해야 한다. 그리고 상기 "type": "cppdbg" 부분을 "type": "lldb"로 수정하고 저장해 준다. 이제 다시 F5를 눌러 빌드를 해 보면 잘 작동하는 것을 확인할 수 있다. C++ 작업용으로는 cpp 파일을 만들어서 위 내용을 그대로 진행하면 되며, C 와 동일한 폴더에서 작업할 때는 tasks.json 파일의 내용 중 "command": "/user/bin/clang" 부분을 "command": "/user/bin/clang++" 로 바꿔주면 된다. ✔ 프로그램 개발 단계프로그램이란 컴퓨터로 하여금 특정 작업을 수행하도록 하는 명령어들의 집합이다. 프로그램을 작성하는데엔 아래와 같은 단계를 거쳐야한다. 프로그램 목적 정의 요구 분석과 시스템 분석을 통하여 프로그램이 가져야 할 기능 정의 프로그램 설계 분석된 기능을 처리할 수 있도록 구조 설계 소스 코드 작성 설계를 기반으로 에디터를 사용하여 작성 컴파일 / 링킹 소스 코드를 실행 가능한 코드로 변환 및 문법 검사 프로그램 실행 테스트와 디버깅 에러 검사 및 디버깅 유지 보수
C 언어로 작성된 프로그램은 크게 코딩, 컴파일, 링킹이라는 3단계 과정을 거쳐 완성된다.
C언어의 경우 에디터는 상관없이 사용가능하지만 C컴파일러가 필요하다. Dev-C++과 Visual Studio가 여기에 속한다. 그러나 mac용 Visual Studio의 경우 C언어가 지원되지 않는다. 이걸 모르고 삽질을 꽤 오래 했다. 나는 xcode가 열리지않았고(대체 왜), 익숙한 환경에서 가볍게 개발하길 원했기 때문에 VS Code를 사용하기로 했다. ✔ Visual Studio Code 에서 C/C++ 개발 환경 구축하기1. Extension - C/C++ 설치2. C/C++ 파일 생성하기컴파일을 진행하기 위해 원하는 폴더에 C/C++파일을 생성 해준다. 아래 코드는 C를 기준으로 작성되어 확장자가 .c이다. C++은 .cpp로 설정하면 된다.
VS Code는 에디터이기때문에 바로 프로그램을 돌릴 수 없다. 코드를 빌드할 컴파일러와 옵션을 지정해줘야한다. 여러가지 컴파일 해봤는데 gcc, g++ 이 안먹혀서 clang👍 으로 해결했다. 3. 빌드 단축키 설정tasks.json 파일 생성에 앞서 설정 > 바로가기 키에서 다음과 같이 테스트 작업 실행 단축키를 만들어준다. 명령어를 입력하면 당연히 템플릿이 없기 때문에 위와 같이 나온다. '실행할 테스트 작업이 없습니다.' 를 클릭한다. '템플릿에서 tasks.json' 파일 만들기를 클릭한다. 'Others'를 클릭한다. 여기까지 따라오면 tasks.json파일이 새로 생성된다. 왼쪽 패널에서도 확인할 수 있다. tasks.json 파일 내 기존 코드를 지우고 아래와 같이 구성해준다.
tasks.json 파일을 저장한 뒤 기존 C/C++ 파일로 돌아가 빌드 실행 명령어 Command + Shift + b 를 입력한다. (나는 빌드 명령어도 단축키로 설정해놨다.) 두 개의 build task가 생성된 것을 볼 수 있다. C/C++ 파일에 맞는 것으로 선택해준다. build 작업이 끝나면 다음과 같이 파일들이 생성된 것을 볼 수 있다. .vscode - tasks 파일은 각 프로그램 파일마다 하나씩 있어야한다. 4. 프로그램 실행테스트 작업 실행 단축키를 다시 입력하면 하단 터미널에 프로그램이 실행된다!! 빌드 단축키가 아니다 헷갈리면 안된다. 👇 각 코드가 어떤 기능을 하는지 살펴보기 더보기 tasks : 뒤에 오는내용이 수행할 작업에 대한 내용 label : 중괄호로 묶여있는 부분의 이름. 이후 Command + Shift + b 를 눌렀을 때 표시되는 내용 type : 작업이 수행되는 공간 command : 작업공간에서 수행할 명령 args : 위 command에 적어준 명령의 파라미터를 넣어줌 -g : 디버깅을 위한 옵션 -o : 출력파일의 이름을 정의 ${fileDirname}/${fileBasenameNoExtension}.out : 파일의 현재 디렉토리에 파일명.out 파일을 생성 ${file} : 현재 파일을 의미. 해당 파일이 여기서는 gcc의 입력이 됨 * 해당 프로그램을 디버깅하는 과정은 추가 예정 (m1 은 디버그 지원이 안된다고 함..) * m1 mac air에서 실행됐다. |