개발/C Series

gcc 사용법 - linux용 C/C++ 컴파일러, 세계의 표준이 되다

ensuta 2021. 3. 21. 05:45
728x90
반응형

gcc 

(GNU Compiler Collection)

GNU 프로젝트의 오픈 소스 컴파일러

 

Unix 용 C 컴파일러였다. 하지만 현재는 다양한 언어를 지원하면서 거의 표준이다.

gcc는 많이 쓰이기 때문에 gcc 사용법을 잘 익혀놓아야 한다.

사진 클릭 시 공식 홈페이지 이동

버전 역사 열람 

 

GNU 컴파일러 모음

위키백과, 우리 모두의 백과사전. GNU 컴파일러 모음(GNU Compiler Collection, 줄여서 GCC)는 GNU 프로젝트의 일환으로 개발되어 널리 쓰이고 있는 컴파일러이다. 자유 소프트웨어 중에 가장 잘 알려진 것

ko.wikipedia.org

 

gcc 사용법

$ gcc main.c #a.out라는 바이너리 파일로 생성된다.
$ /a.out #실행

gcc를 리눅스에서 기본으로 실행하면 a.out 으로 생성된다. (리눅스 실행파일)

$ gcc -o main main.c #main 이라는 이름으로 바이너리 파일로 생성 (가장 많이 쓰는 형태)
$ /main #실행

-o 옵션은 이름을 바꿀 수 있다.

 

 

-c 옵션은 main () 함수를 찾지 않겠다는 의미이다. 따라서  

$ gcc -c main.o main.c #object 파일생성

가 가능하다. 이것은 매우 중요한 옵션이다.

$ gcc -o main main.c array.c #object 파일 생성 X 

바로 생성도 가능하다.

 

array.c 처럼  뒤에 붙이면 헤더를 자동으로 찾아준다. 종속성을 주고 싶으면 Makefile를 작성해야 한다.

 

라이브러리 참조를 해보자.

$gcc -o main main.c -lphthread

이러면 시스템 내부의 라이브러리 libpthread.so를 참조한 main 이라는 프로그램이 생성된다.

 

 

gcc의 그 외 명령 옵션들 (더 알고 싶다면 $gcc ---help 또는 man gcc)

-v : 컴파일 과정을 화면에 출력

-o : 출력 파일 이름 설정

-I : 대문자 i. header 파일의 위치를 설정

-D : 코드 내부 define이다.(= 맨 위에 #define을 추가)

-Wall : Warning all의 줄임말이다. 컴파일은 진행되지만, gcc가 알려주는 warning들을 보여준다.

-W : Wall 옵션으로 인해 표시되지 않던 warning도 함께 보여준다.

-O : 최적화 옵션 자세한 사용법은 여기에 잘 설명되어 있다.

-lm : math libarary 사용하는 옵션이다.

-l : 라이브러리 참조 명령. 컴파일할 때 많이 쓴다.

-L : library 폴더의 위치를 지정한다.

-c : *.o 파일을 생성하는 옵션이다.

GCC #pedantic -Wall -Wextra -Werror 컴파일 옵션을 넣으면 사소한 warning: 사항도 전부 error: 로 변환하여 컴파일을 중단시키므로 코드의 품질을 잡는 데 많은 도움이 된다.

반응형