운영체제 (OS)/Linux

Linux환경에서 gcc로 C, C++ 컴파일하기

윤창이 2021. 1. 4. 04:03
728x90

[주의] 개인 공부를 위해 쓴 글이기 때문에 주관적인 내용은 물론, 쓰여진 정보가 틀린 것일 수도 있습니다!

피드백 부탁드립니다. (- -)(_ _) 꾸벅

GNU Compiler Collector


GCC란?

 GNU Compiler Collection 줄여서 GCC라 한다. 원래는 C만 지원했던 까닭에 GNU C Compiler였는데, 도중에 C++, Java, Fortran, Ada 등 여러 언어를 컴파일할 수 있게 되면서, 현재의 이름으로 바뀌게 되었다.

Java는 7.1부터 지원 종료되었고, 현재 공식적으로 지원하는 언어는 C, C++, Objective-C, Fortran, Ada, Go이다. 

비공식적으로 파스칼, 머큐리, PL/I, D, VHDL(베릴로그까지..?) 등이 있다.


GCC 설치하고 코딩해보기

 나는 우분투 18.04에서 사용하였다. 먼저 아래 명령어를 입력하여 설치부터 하자.3

$ sudo apt-get update
$ sudo apt-get install gcc  // C 컴파일러
$ sudo apt-get install g++  // C++ 컴파일러

 

 

이제 따로 폴더를 만들고, 그 폴더 안에서 간단한 소스파일을 코딩해주자.

$ vi [파일명].cpp

 

 물론 C++이 아닌 C로 작성하려면 ->  [파일명].c 

 

그러곤 정말 간단하게 코딩하구 저장. 

$ g++ [파일명].cpp -o [출력할 파일명]

터미널에 위에 같이 -o 옵션을 입력하면 지정한 파일명의 실행파일이 나오게 된다.

$ ./[실행할 파일명]

실행 파일을 위와 같이 터미널에서 실행하면

 

참 쉽다.

 

마찬가지로 C를 컴파일하려면 gcc 명령어를 이용하면 된다. 이 gcc명령은 C++을 위한 라이브러리는 포함돼있지 않기 때문에 gcc로 굳이 C++ 언어를 컴파일하려면

$ gcc [파일명].cpp -o [출력할 파일명] -lstdc++

위와 같이 -lstdc++ 옵션을 붙여주도록 하자

 

 

gcc에는 옵션이 많이 있으니, 사용할 때가 있으면 시기 적절히 사용하도록 하자.

--help : 간단한 옵션을 출력해줍니다.
--version : gcc의 버전을 출력해 줍니다.

-o : 출력 파일명을 지정할 때 사용합니다.
-c : 링킹 과정을 진행하지 않고 .o 파일인 오브젝트 파일까지만 생성 하게 됩니다.
-S : 어셈블러까지 진행 하지 않고, 컴파일러까지의 출력은 .S 어셈블러 파일을 생성하게 됩니다.
-O1 ~ -O3 : 최적화 수준을 지정합니다. 숫자가 클수록 높은 수준의 최적화를 하게 됩니다.
-g : 디버깅을 위한 정보를 컴파일하면서 생성하게 됩니다.
-D : define을 할 수 있는 옵션입니다.
-l (엘) : 라이브러리 이름을 지정합니다.
-L : 추가 라이브러리 디렉터리를 지정합니다.
-W : 모든 에러 메시지 출력
-w : 모든 에러 메시지를 출력하지 않음
-I(아이) : 추가 헤더 파일이 있는 디렉터리를 지정합니다.

출처: https://ibabo.tistory.com/87

 

728x90