Sublime Text 설치부터 C++ 빌드하기

0. Sublime Text란?

Imgur

Sublime Text는 간단하게 말해서 이쁘고 기능이 많은 텍스트 에디터입니다.

여기서는 Sublime Text에 대한 자세한 소개는 다루지 않으니 잘 모르시는 분은 검색이나 공식 홈페이지를 참고해주세요(http://www.sublimetext.com/)

이 포스트는 Sublime Text를 설치하고, C++ 코드를 빌드하고 실행하는것 까지를 다룰것입니다.

  • 이 포스트는 Sublime Text 3 버전과 윈도우 OS를 기준으로 작성되었습니다.

1. 준비물

1) Sublime Text 3 ( http://www.sublimetext.com/3 여기서는 portable 버전이 아닌 setup.exe 파일로 설치합시다. )

2) gcc 컴파일러 ( http://orwelldevcpp.blogspot.kr/ 왼쪽의 링크는 편의상 dev cpp의 링크를 달았습니다. gcc 컴파일러만을 따로 설치해도 무방합니다.)

3) 커스터마이징을 위한 끈기


2. gcc 환경변수 등록

C++ 코드를 컴파일 하기 위해 gcc 컴파일러를 환경변수에 등록해봅시다.

내 PC 오른쪽 클릭 -> 속성 -> 고급 시스템 설정 -> 고급 -> 환경변수 -> 시스템 변수 -> Path 클릭 -> 편집 을 누릅니다.

성공 하셨다면 아마 아래와 같은 화면이 뜰겁니다.

Imgur

이제 gcc컴파일러가 들어있는 디렉토리를 입력해야 합니다. 환경변수의 변수값안의 텍스트창 끝에 세미콜론(;)를 입력 한 후, gcc 컴파일러의 디렉토리를 적습니다.

gcc를 dev cpp로 설치하셨다면 대략 아래와 같은 경로에 컴파일러가 존재합니다.

C:\Program Files (x86)\Dev-Cpp\MinGW64\bin

끝에 ;를 입력한 다음 경로를 적는것을 잊지 맙시다.

다 입력했다면 확인을 눌러 저장합니다.


3. C++ 빌드 확인해보기

2번까지 성공적으로 마쳤다면 컴파일 및 실행까지 할 수 있습니다.

우선 Sublime Text를 실행해 봅시다. (이미 실행한 상태에서 환경변수를 바꿨다면 Sublime Text를 재시작 해야합니다.)

첫 화면은 아래와 같을것입니다.

Imgur

이제 C++ 파일을 하나 작성해봅시다. ctrl + N 키를 누른 다음 C++ 코드를 작성하고 ctrl + S 키를 통해 저장합시다.

Imgur

이제 build를 해봅시다!

build 키는 ctrl + B 키를 누르면 됩니다.

처음 누르면 C++ Single File 과 C++ Single File - Run이 뜰탠데, 방향키 아래키를 눌러 Run을 선택합시다.

코드가 정상적으로 짜여졌다면 아래 그림처럼 결과가 출력될 것입니다.

Imgur

여기까지 Sublime Text + C++코드 빌드였습니다.

입력은 파일 입출력 함수 ( freopen ) 를 통해 받아오면 됩니다.

매번 함수 쓰기 귀찮다구요? 그럴 줄 알고 redirection을 통한 표준 입력 방법을 아래에 적어놨습니다.


4. 표준 입출력 사용

여기서부턴 조금 귀찮은 과정이지만, 앞으로 편하게 하기 위해 조금 참는겁니다.

먼저, Sublime Text를 종료하고, Sublime Text가 설치된 디렉토리로 이동합니다.

setup 파일을 통해 받으셨다면 대략 아래와 같은 경로에 존재합니다.

C:\Program Files\Sublime Text 3

들어갔다면 그 하위에 있는 Packages 디렉토리로 이동합니다.

여러가지 sublime-package 파일이 들어있는데, 우리는 여기서 C++.sublime-package 파일만을 다룰것입니다.

위 파일은 전부 zip형식으로 압축되어있습니다. 따라서 끝에 확장자 .zip을 붙여 압축파일로 만들어 봅시다. (확장자가 보이지 않는 분은 폴더 속성에 들어가 확장자 보기를 클릭합시다.)

그 다음 아래 그림과 같이 압축을 해제합니다.

Imgur

압축이 해제되었으면 C++.sublime-package 디렉토리에 들어간 다음, 메모장을 통해 C++ Single File.sublime-build 파일을 열어봅시다.

Imgur

위와 같이 되어있을탠데요, 보시다싶이 최적화 옵션이나 C++11 설정도 되어있지 않습니다.

그리고 저희의 최종 목표인 redirection을 통한 표준 입출력 설정도 되어있지 않습니다.

따라서 아래와 같이 바꿔봅시다.

{
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",

    "variants":
    [
        {
            "name": "Run",
            "shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\" < input.txt"
        }
    ]
}

컴파일 옵션은 취향에 맞게 바꾸셔도 됩니다. 다만, 위 문법을 잘 지켜줘야만 빌드가 제대로 되니 다르게 바꿀때는 신중히 작성해주세요.

수정이 완료되었다면 파일을 저장하고 압축 푼 디렉토리를 다시 압축하여 원래대로 돌려놔야 합니다.

다시 Packages 디렉토리로 돌아가서 C++.sublime-package를 zip 파일로 압축한 다음, .zip을 제거하여 원래 상태로 되돌립시다.


5. 표준 입출력 테스트

4번까지 완성 하셨다면 이제 모든 과정이 끝나고 테스트만 해보면 됩니다.

실수로 따옴표 밖에 옵션을 달았다거나 한다면 빌드가 안될 수 있으므로 반드시 테스트과정을 거쳐야 합니다.

이제 sublime text를 다시 실행해봅시다.

그러면 아까 작성했던 C++ 코드가 뜰탠데요,

이제 입력파일을 만들기 위해 ctrl + N 키를 눌러서 적당한 값을 입력하고 ctrl + S 키를 눌러 C++코드와 같은 디렉토리에 input.txt 파일로 저장해봅시다.

그 다음 C++ 코드를 cin 이나 scanf 등의 표준 입력 함수를 통해 작성하고 ctrl + B로 빌드합니다.

아래 그림 같이 입력이 잘 받아졌다면 성공입니다.

Imgur

여기까지 Sublime Text 설치 및 C++ 코드 빌드하기 였습니다.

수고 많으셨습니다. 짝짝짝!

이 아래 부터는 꾸미기나, Sublime Text를 좀 더 잘 다루기 위한 포스트로, 굳이 읽지 않으셔도 괜찮습니다.


6. 레이아웃 꾸미기

파일 redirection을 통해 입력을 받아온것 까진 좋지만, 매번 화면을 전환해서 입력 파일을 수정하는것은 조금 번거로울 것입니다.

다행히 Sublime Text에는 화면을 분할하여 두 텍스트 파일을 한눈에 볼 수 있습니다.

상단에 View -> Layout -> Columns: 2 를 클릭합시다.

그러면 오른쪽에 화면이 하나 새롭게 추가됩니다. 이제 input.txt 파일을 드래그하여 오른쪽에 둡시다.

화면 크기를 잘 조절한다면 아래와 같이 편하게 사용할 수 있습니다.

Imgur


7. 플러그인 추가하기

사실 Sublime Text의 꽃은 각종 유용한 플러그인을 설치하여 사용하는것입니다.

여기서는 플러그인 컨트롤러와 간단한 플러그인 하나를 설치하는 과정을 보여드리고자 합니다.

우선 Sublime Text를 실행합니다.

첫 화면에서 ctrl + ` 키를 누릅니다.

그러면 아래에 커맨드라인 창이 뜨는데, 그 창에다 아래 사이트에 적힌 코드를 입력합시다.

https://packagecontrol.io/installation

입력한 후 enter를 누르면 설치가 진행됩니다. 끝나면 경고창이 하나 뜨는데 무시해도 좋습니다.

설치가 다 되었다면 ctrl + shift + p 키를 입력해봅시다. 아래 그림처럼 나오면 성공한 것입니다.

Imgur

이 창에 install 까지 입력한 다음 enter를 입력하면 새로운 창이 뜨는데, 그 안에 C++ Snippets 를 입력한 후 enter를 입력합시다.

매뉴얼 파일이 열렸다면 설치가 완료된 것입니다.

그 다음 C++ 소스코드가 들어있는 파일을 Sublime Text에 띄운 다음, View -> Syntax -> Open all with current extension as ... -> C++11 을 클릭합니다.

그러면 이제 C++ 문법 highlighting 이 업데이트 되었음을 알 수 있습니다. (ex - using namespace std; 에서 namespace에 highlight가 추가 되었을겁니다.)

이런 식으로 원하는 플러그인을 찾아 설치하여 적용하면 됩니다.

플러그인 목록은 https://packagecontrol.io/ 에 자세하게 나와있습니다.

주로 설치되는 플러그인은 테마 ( 첫번째 스크린 샷이 추가로 설치한 테마가 적용된 버전입니다. ) 또는 Color Scheme 이고

git나 sftp 같은 기능성 플러그인도 다양하게 있습니다.


8. 출력창 Console로 실행하기

짱 좋아보이는 Sublime Text에도 단점이 있습니다.

바로 무한 루프를 돌면서 과도한 출력시 프로그램이 종료되버리는 현상인데요, 이것은 Sublime Text 내에서 프로그램을 실행하기 때문에 발생하는 문제입니다.

따라서 콘솔 창을 따로 띄워서 프로그램을 실행하면 안전하죠.

지금부터는 출력을 Sublime Text가 아닌 콘솔창을 띄우게 Build 하는 방법에 대해 알아보겠습니다.

우선 메모장을 실행하고 다음 코드를 붙여넣습니다.

cls && %1 < %2 && pause && exit

이 파일을 2번의 gcc 환경변수 디렉토리에 저장합시다. 이름은 build.bat 이라고 하겠습니다.

저의 경우 아래와 같은 경로에 저장됩니다.

C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\build.bat

그 다음 4번에서 했던 build 설정을 다시 반복합시다.

C++ Single File.sublime-build 파일을 열고 이번엔 아래와 같이 입력합니다.

{
    "shell_cmd": "g++ \"${file}\" -o \"${file_path}/${file_base_name}\"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",

    "variants":
    [
        {
            "name": "Run",
            "shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && start build.bat \"${file_path}/${file_base_name}.exe\" \"${file_path}/input.txt\""
        }
    ]
}

그리고 나머진 4번에서 했던대로 원래 상태로 돌려줍니다.

마지막으로 빌드 테스트를 해봅시다. 아래 그림처럼 새로운 콘솔창이 떴다면 성공한 것입니다.

Imgur

이 설정에는 @algoshipda 님의 많은 도움이 있었습니다. 짝짝짝!

댓글 (22개) 댓글 쓰기


algoshipda 1년 전

좋아요 짝짝짝


appa 1년 전

최고!


lilynys113 1년 전

역시 갓갓갓갓


Acka 1년 전

감사합니다 :)


kimgs0725 8달 전

감사합니다. sublime text 3 환경설정 때문에 고생했는데, 이 글 읽고 한방에 해결됐네요 ㅎㅎ


yohan5050 8달 전

감사합니다 덕분에 방금 큰 어려움 없이 설치 했습니다. 자세하고 친절한 설명 감사합니다!


himchan2004 7달 전

고맙습니다!


faxingberlin 7달 전

모든 부분이 잘 되는데요, 콘솔창 띄우는 부분 수정했는데

콘솔창에

지정된 파일을 찾을 수 없습니다.

이렇게 뜨고 cmd 입력으로 나옵니다.. 왜 그럴까요? ㅠㅠ


yukariko 7달 전

@faxingberlin 주로 input.txt 파일이 소스코드와 같은 디렉토리에 존재하지 않는경우 그렇게 됩니다. 또는 컴파일 오류때문에 프로그램이 실행이 안됐다거나.. 그것도아니면 설정에 문제가 있다거나 여러 요인이 있을수있습니다.


qls0147 5달 전

관리자 권한 때문에 C++ Single File.sublime-build 파일이 수정이 안되는데 어떻게해야하나요? ㅠㅠ 메모장을 관리자 권한으로 실행한다음 이 파일을 수정할까 했었는데 그것도 안되구..


yukariko 5달 전

@qls0147 그런 경우는 파일을 바탕화면으로 빼낸다음 수정하고 다시 붙여넣는게 편합니다. 그래도 불편하긴 하죠 ㅠㅠ


sgc109 4달 전

맨처음 스크린샷에 나온 테마 뭔지 정보좀 부탁드립니다. 왼쪽에 파일 계층 나오는곳이 기본 스킨은 좀 지저분해서요..


yukariko 4달 전

@sgc109 위 테마는 Flatland 의 Dark 버전 테마입니다. 제가 추천하는 테마는 위 테마와 Material 테마, Brogrammer 테마입니다. 제가 현재 사용하고 있는 테마는 Brogrammer에 solarflare-contrast라는 컬러스킴을 적용하여 사용중입니다. 창 위에 Bar가 어떤것인지 정확히는 모르겠으나 F11 로 전체화면 모드를 사용하면 맨 위 제목표시줄이 사라집니다.


yukariko 4달 전

slack으로 답변해드렸습니다.


myteather 3달 전

감사합니다. 근데 입력받을 때 input.txt 말고 그냥 키보드로부터 입력받으려면 어떻게 해야되요?


yukariko 3달 전

@myteacher 그때는 콘솔창 띄우는 방법에서 input.txt 관련을 지우시면 됩니다. 콘솔을 띄우지 않고는 불가능합니다.


myteather 3달 전

혹시 조금만 더 구체적으로 어디서 어디까지 지워야 되는지 알려주실수 있나요?


yukariko 3달 전

cls && %1 < %2 && pause && exit

이부분을

cls && %1 && pause && exit

로 고치고

"shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && start build.bat \"${file_path}/${file_base_name}.exe\" \"${file_path}/input.txt\""

이부분을

 "shell_cmd": "g++ -O2 -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && start build.bat \"${file_path}/${file_base_name}.exe\""

로 고치면 될것 같습니다.


myteather 3달 전

된다!! 감사합니다!


portableangel 2달 전

오늘 서브라임 텍스트 업데이트 하고 설정 초기화돼서 다시 보러 왔습니다


cwd0525 2주 전

그렇군요


aura1213 2일 전

감사합니다 ^^