Skip to content
TUWLAB.com
모든 게시물에 대하여 '링크'
방식의 퍼가기만 허용합니다.
한양대학교 전자통신컴퓨터공학부
바라미
  • 69
  • 2573441
DNS Powered by DNSEver.com
Linux

[ColorGCC] 컴파일 경고 및 오류메시지 컬러로 출력하기

Posted 2014. 04. 10 Updated 2017. 06. 02 Views 9674 Replies 0
Atachment
첨부

윈도우 환경에서 Visual Studio와 같은 IDE에서만 개발 작업을 하다가, 리눅스 환경에서 처음 개발을 시작한게 된다면 불편하고 막히는 점이 한 두가지가 아닐 것입니다.

IDE만 설치하면 자동으로 설정해주고 지원해주던 것들이, 리눅스에서는 일일이 수동으로 세팅해 주어야 하기 때문입니다.

하지만, 사용자가 일일이 환경설정을 해 줘야 되서 그렇지, 일단 세팅만 잘 해두고 그 환경에 익숙해진다면 얼마 가지 않아 개발은 리눅스 환경에서 하는 것이 훨씬 편하다고 느끼게 될 것입니다.

새로운 개발 환경에서 불편함을 느끼게 되는 점이 한 두가지가 아니겠지만, 이번 포스트에서는 모두 똑같은 색으로 출력되는 컴파일 오류메시지를 컬러풀하게 출력하는 방법을 다루도록 하겠습니다.

리눅스에 설치된 기본 컴파일러(gcc, g++, cc, c++)로 컴파일을 하면 경고나 오류가 발생하더라도 메시지만 출력할 뿐 해당 메시지를 컬러 형식으로 구문강조해서 표시해 주지 않습니다. 하지만, ColorGCC라는 유틸리티를 사용하면, IDE에서와 같이 메시지를 컬러로 표시할 수 있습니다.


ColorGCC 설치

다음 명령어를 사용하여 colorgcc를 설치합니다.

sudo apt-get install colorgcc

다음으로, 시스템에서 사용하는 컴파일 명령어들이 모두 colorgcc를 가리키도록 설정합니다.
이 과정은 심볼릭 링크를 만들고, $PATH에 해당 디렉토리가 가장 앞에 위치하도록 설정하는 과정으로 나뉩니다.


컴파일러 심볼릭 링크 생성

mkdir ~/compilers
cd ~/compilers
ln -s `which colorgcc` g++
ln -s `which colorgcc` gcc
ln -s `which colorgcc` cc
ln -s `which colorgcc` c++


PATH 등록

~/.bashrc 맨 아래에 다음 줄을 추가합니다.

export PATH="$HOME/compilers:$PATH"


.colorgccrc 작성

이제 컴파일 명령을 모두 colorgcc로 돌렸으므로, colorgcc에서 각 컴파일러를 찾을 수 있도록 설정해 주어야 합니다.

위에서 생성한 링크로 하여금 colorgcc가 실행이 되면, colorgcc에서는 다음 설정 파일을 뒤져서 실제 컴파일러의 위치를 찾아내어 실행합니다.

~/.colorgccrc 파일을 다음과 같이 작성합니다.

gcc: /usr/bin/gcc
g++: /usr/bin/g++
cc: /usr/bin/cc
c++: /usr/bin/c++


콘솔을 재시작하고, 실제 컴파일을 해서 경고나 오류메시지가 다음과 같이 컬러로 표시되면 올바르게 설정이 된 것입니다.

error_test.png


※ 사용할 컴파일러를 추가하고 싶다면, 앞서 생성한 compilers 디렉토리에 해당 컴파일러 명령어가 colorgcc를 가리키도록 심볼릭 링크를 생성하고, colorgccrc에 컴파일러의 실제 경로를 기재해주면 됩니다.


TAG •
서비스 선택
이용중인 SNS 버튼을 클릭하여 로그인 해주세요.
SNS 계정을 통해 로그인하면 회원가입 없이 댓글을 남길 수 있습니다.
댓글
?
Powered by SocialXE

List of Articles
번호 분류 제목 글쓴이 최근 수정일 조회 수
145 Linux [Linux] Sudo 명령의 Secure Path TUW 2015.04.24 7984
144 Linux [Linux] fdisk 활용 외: 파티션 생성, 배드블록 검사, 파일시스템 생성 TUW 2015.04.24 8238
143 Linux TCPDump를 활용하여 패킷 모니터링하기 TUW 2020.04.13 7169
142 일반 [C++] Template Class의 정의(Definition)와 구현(Implementation)은 한 파일 안에 있어야 한다. TUW 2015.11.26 10327
141 일반 [GIT] Patch 만들기 및 적용하기: format-patch, am TUW 2015.01.10 40844
140 일반 [GIT] 실행취소와 Commit 삭제: reflog, reset, checkout, revert TUW 2019.04.28 64546
139 일반 [GIT] 임시 저장소 사용하기: stash TUW 2015.11.27 4774
138 일반 [GIT] 병합하고 Commit 재정렬하기: cherry-pick, rebase, merge file TUW 2017.06.02 32189
137 일반 [GIT] Branch 관리하기: branch, checkout, push, pull 2 TUW 2018.02.03 48376
136 일반 [GIT] Commit하고 원격 저장소로 내보내기: add, reset, commit, push TUW 2018.01.18 27460
135 일반 [GIT] 로컬 저장소 정보 조회하기: status, show, log, diff, blame file TUW 2017.06.02 7179
134 일반 [GIT] 기본 환경 설정 및 작업 시작하기: config, clone, init, pull, fetch, remote TUW 2019.01.30 12821
133 일반 [GIT] GIT이란 무엇인가, GIT에 대하여 file TUW 2017.06.02 27704
» Linux [ColorGCC] 컴파일 경고 및 오류메시지 컬러로 출력하기 file TUW 2017.06.02 9674
131 XE [XE] XE 1.7.4.x 적용 후 SocialXE에서 '잘못된 요청입니다.' 오류 해결하기 21 file TUW 2017.06.02 14916
130 Linux Linux 루트 디렉토리 구성 TUW 2018.01.04 17422
목록
Board Pagination Prev 1 2 3 4 5 6 7 ... 13 Next
/ 13

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5