펭로그

[IDE] 윈도우에서 gcc 컴파일 환경 구축하기 - JetBrains CLion 본문

Development/IDE

[IDE] 윈도우에서 gcc 컴파일 환경 구축하기 - JetBrains CLion

개발자 노랑펭귄 2018. 7. 24. 08:22

1. JetBrains 소개



C/C++ 초급 개발자라면 보통 비주얼 스튜디오를 이용하여 개발하는 것이 보편적이며 입문자들의 대부분은 비주얼 스튜디오로 시작하는 편이다. 학원이나 학교에서 그렇게 가르쳐주기 때문이다. 그리고 한글이니까..? 게다가 Community 버전은 무료니까...!!!


비주얼 스튜디오는 정말 편리하고 빠른 개발환경을 제공한다. 프로젝트를 생성하고 이것저것 환경설정을 따로 해줄 필요가 없어 간편하다.

makefile을 만들 필요도 없고 그냥 솔루션 폴더에 cpp 파일과 헤더 파일을 넣고 필요하면 외부 라이브러리를 추가하기만하면 간단한 설정만으로도 프로젝트 환경을 구축할 수 있다.


[백준 온라인 저지 사이트에서 꽤나 빈번하게 발생하는 컴파일 에러]


하지만, 최근 알고리즘 공부를 하면서 비주얼 스튜디오 환경에서 정상적으로 실행되었던 문제들이 '컴파일 에러' 등의 이유로 오답처리 되는 경우가 빈번하게 발생하여 원인을 알아봤더니 비주얼 스튜디오에 문제가 있는 것을 알게되었다.


비주얼 스튜디오에서 사용하는 VS C++ 컴파일러와 GCC 컴파일러의 헤더 의존성 차이로 인하여 이러한 문제가 발생한다고 한다.

비주얼 스튜디오는 '보안상 취약'의 이유를 들어 scanf 대신에 scanf_s를 사용하는 것을 권장으로 하는데 이것은 ANSI 비표준이기 때문에 다른 컴파일러에서 에러를 뿜어낼 수 밖에 없다.

그리하여 #pragma warning(disable: 4996) 또는 #define _CRT_SECURE_NO_WARNINGS을 사용하거나 프로젝트 속성에서 SDL 검사를 체크 해제하는 방법으로 우회를 하는 많은 사람들을 볼 수 있다.(물론 나도 그랬고..)


또한, gcc에선 #include <bits/stdc++.h> 를 통해서 STL을 포함하여 알고리즘을 풀이하는데 필요한 거의 모든 것을 한번에 include 하여 시간을 조금이나마 절약할 수 있다. 풀이 시간이 중요한 알고리즘 테스트에서 유용하게 쓰인다.


[bits/stdc++.h 에 정의되어 있는 내용]



[백준 온라인 저지 - 52번 글 컴파일 에러가 나시나요? (C/C++)]


BOJ에서도 비주얼 스튜디오로 인한 컴파일 에러 문제가 많이 보고되어 위와 같은 글을 볼 수 있다.



채점 환경

  • AWS EC2를 사용합니다.
    • 인스턴스 타입: c4.large
    • 프로세서: Intel Xeon E5-2666v3
    • 클럭: 2.9 GHz
    • 메모리: 3.75 GiB
    • 프로세서 아키텍쳐: 64-bit
  • OS: Ubuntu 16.04.4 LTS

C

  • 컴파일: gcc Main.c -o Main -O2 -Wall -lm -static -std=c99 -DONLINE_JUDGE -DBOJ
  • 실행: ./Main
  • 버전: gcc (GCC) 7.3.0

C++

  • 컴파일: g++ Main.cc -o Main -O2 -Wall -lm -static -std=gnu++98 -DONLINE_JUDGE -DBOJ
  • 실행: ./Main
  • 버전: g++ (GCC) 7.3.0


백준 온라인 저지 채점 도움말에 따르면 리눅스에서 gcc 환경으로 채점을 하는 것이 확인 가능하다.

잘은 모르지만 매개변수로 -o Main -O2 -Wall -lm 을 입력하여 O2 최적화, 경고 무시, 수학라이브러리를 포함하는 환경이라고 한다.



jetbrains에 대한 이미지 검색결과

[안드로이드 스튜디오 상에서 확인할 수 있는 IntelliJ와 JetBrains]


그래서 gcc 개발환경을 구축하기로 마음먹었고 비주얼 스튜디오 만큼 사용이 편리하고 기능이 다양한 IDE를 찾던 도중 어디서 많이 익숙하게 봤던 IDE를 발견하게 되었다.

그것은 JetBrains에서 개발한 IntelliJ 라는 IDE로 안드로이드 스튜디오와 파이참으로 개발할 당시에 많이 봐왔던 익숙한 환경이었다.

그냥 모르고 사용했었는데.. 이게 이 회사 제품이었구나... 하고 느낀 순간이다.



JetBrains에서는 위와 같이 다양한 언어 및 개발환경을 제공하며 윈도우, 리눅스, 맥에서 모두 사용이 가능한 범용성까지 지닌다.

흔히 자바 개발은 IntelliJ를 사용하고 C언어는 CLion, 파이썬은 PyCharm 등등... 자바부터 코틀린까지.. 다양하게 지원한다.

또한, ReSharper C++은 비주얼 스튜디오에 플러그인으로 사용할 수 있다고 하는데... 이건 잘 모르겠다.


아무튼 그리하여 안드로이드 스튜디오와 파이참으로 익숙하게 봐왔던 개발환경이 마음에 들어 CLion을 설치하여 gcc 환경을 구축하기로 하였다.




2. JetBrains 학생 라이센스 발급



JetBrains의 제품은 강력하고 안정적이며 편리하다. 그리고 예쁘다.

하지만.. 세상에 공짜는 없다. 돈을 내야한다... 물론 비주얼 스튜디오도 Community 버전을 사용해서 무료인 것이지 사실상 유료인 것은 마찬가지..

그렇다면 JetBrains 사의 제품은 무료로 제공하지 않는 것인가?




보이는가? Free! 무료 버전이 있다!

학생과 교사, 오픈소스 프로젝트 참여자 등 다양한 옵션의 무료 플랜을 제공한다.

https://www.jetbrains.com/store/?fromMenu#edition=discounts


우리는 학생이기 때문에 'For students and teachers' 버튼을 눌러 회원가입을 하고 무료 다운로드를 받아보도록 하자.




모든 기능이 무료다! 학생메일 또는 국제학생증(ISIC)이 있으면 말이다.

APPLY NOW 버튼을 눌러 회원가입을 진행해보자.



회원가입은 아래의 3가지 방법을 지원한다.


1) 학생메일을 이용한 회원가입 : ac.kr 이메일 주소가 있는 대학 구성원이면 쉽게 인증 가능

2) 국제학생증을 이용한 회원가입 : 국제학생증(ISIC) 등록번호를 통해서 쉽게 회원가입 (ac.kr 이메일 주소가 아니어도 가능)

3) 학생을 증명할 수 있는 공식 서류를 제출하여 회원가입 : ac.kr 메일주소가 없거나 고등학생일 경우


이 글에선 1번 대학생 학생메일을 이용한 방법으로 진행하겠다.


특별하게 요구하는 정보가 없기 때문에 위와 같이 입력하고 APPLY FOR FREE PRODUCTS 버튼을 누르면 회원 가입이 진행된다.

메일주소는 반드시 ac.kr로 끝나는 메일주소만 가입된다. 만약 ac.kr의 메일주소가 없다면 학교에 문의해보도록 하자.




1~2분 정도 지나면 메일함에서 위와 같은 내용을 확인할 수 있다. Confirm Request를 눌러 계속 진행한다.



버튼을 누르면 마지막으로 닉네임, 비밀번호를 설정하고 Submit 버튼을 누르면 회원가입이 완료된다.



메인페이지를 기준으로 My Account 버튼을 누르면 현재 가지고 있는 라이센스를 확인할 수 있다.



학생용 라이센스가 발급되었다. 보이는가? 저 모든 제품을 무료로 사용할 수 있다.




Download 버튼을 누르면 원하는 제품을 다운로드할 수 있다.



3. MinGW를 이용한 gcc 컴파일러 설치


비주얼 스튜디오와는 다르게 CLion은 IDE 껍데기만 제공하며 컴파일러는 별도로 설치해줘야 한다. 원한다면 VS C++을 CLion에서 사용할 수도 있다고 한다.



http://www.mingw.org/


MinGW는 윈도우에서 GNU 컴파일러 환경을 제공하는 편리한 툴이다. 이 프로그램을 통하여 clang이나 gcc 등을 설치할 수 있다.

메인 화면에서 Download Installer 버튼을 눌러서 설치 파일을 다운로드 받도록 하자.






설치는 어려운게 없다. 그냥 버튼만 누르면 설치가 완료된다.


참고 : MinGW 실행시 혹시라도 get package 오류가 난다면 관리자 권한으로 실행해야 한다.





마우스 우클릭으로 Mark for Installation을 누르면 항목이 선택된다.

mingw-developer-toolkit, mingw32-base, mingw32-gcc-g++을 선택한다.




Apply Changes를 눌러 설치한다. 설치에는 시간이 꽤 소요된다.




설치가 완료되면 'C:\MinGW\bin'을 환경변수로 등록해줘야 한다.



cmd에서 gcc -v 또는 g++ -v로 버전확인을 할 수 있다.



4. CLion 설치 및 gcc 컴파일러 설정




gcc 컴파일러를 설치했으면 CLion을 설치한다. 이 과정까지 설치 시간이 꽤 걸리편이지만 비주얼 스튜디오 설치에 비하면 아무것도 아니다.




계정 인증 고고




테마는 취향에 맞게 선택한다.




MinGW를 이용하여 정상적으로 gcc가 설치되었으면 그림과 같이 자동으로 표시된다.

만약 위와 같이 되지 않는다면 환경변수 설정을 다시 확인해보도록 하자.

gcc 뿐만 아니라 clang과 vs c++ 등 원하는 다른 컴파일러들도 사용 가능하다.





별다른 필요한 요소가 없어 스킵했다.




예제로 C++ 프로젝트를 생성해보았다.




Hello, World!가 정상적으로 잘 실행되는 것을 확인할 수 있다.


이로써, 윈도우에서 gcc 개발환경 구축 성공!! IntelliJ 기반의 IDE 덕분에 단축키 활용도 편리하고 크로스 플랫폼을 지원하기 때문에 윈도우에서 개발하다가 리눅스에서 개발해도 전혀 불편함이 없다.




추가) CMakeList.txt


비주얼 스튜디오와는 다르게 gcc에서 컴파일을 위해선 Makefile을 반드시 만들어줘야 한다.

[Makefile의 내용]

딱 보기에도 너무 어렵다...

하지만, CMake라는 것을 이용하면 Makefile을 만드는 것을 조금 더 쉽게 해준다.



기본적으로 CLion은 CMake 기반 빌드 설정이 기본이기 때문에 우리가 건드릴 항목은 CMakeList.txt만 손보면 된다.

컴파일 시에 포함할 파일을 CMakeList.txt에 추가하고 Reload changes를 반드시 눌러야 적용된다.




추가) 디폴트 경로



input.txt를 위와 같이 cpp 파일이 들어있는 폴더에 넣었더니 인식을 못하는 상황이 발생했다.

비주얼 스튜디오에선 그냥 소스파일과 같은 폴더에 넣으면 됐었는데.. 안되기 때문에 처음엔 당황했다.




이 폴더가 루트 경로가 되기 때문에 소스코드와 같이 있던 파일을 인식하지 못한 것이었다.



1
freopen("../input.txt""r", stdin);
cs


경로 앞에 ../ 를 넣으면 상위 폴더로 이동할 수 있기 때문에 이렇게 해결하였다.

5 Comments
댓글쓰기 폼