프로그래밍 농장

gcc의 개념 및 c언어 컴파일 해보기 [ Linux ] 본문

카테고리 없음

gcc의 개념 및 c언어 컴파일 해보기 [ Linux ]

Tennessee201 2021. 11. 8.
728x90

Linux gcc 는 기본적으로 'TUI'이다. 

많이 들어본 GUI(비주얼스튜디오 . .)와 다르게 text 기반의 인터페이스라는 뜻입니다. 

 

그렇다면 아래와 같이 터미널을 열고, vi [파일명.c] 를 입력하여 c파일을 생성해줍니다.  

이후 Hello World! 라는 문자열을 출력하기위한 간단한 코드를 작성 후 :wq 로 저장후 나와줍니다.

이후 아래와 같이 gcc hello.c를 입력하여, hello.c파일이 저장되어 있는 path에 a.out이라는 파일이 생기는데, 이는 hello.c의 실행파일입니다. 

이후 ./a.out 을 입력하여 파일을 실행시켜보면, 코드를 입력하였던 결과가 수행되는것을 확인할수있습니다.

 

GCC는 GNU Complier Collection의 줄임말로서, 전에는 C Complier였지만, c++, 자바, 포트란 등을 모두 컴파일 할 수 있을 정도로 커져서 현재는 컴파일러 콜렉션이라고 바뀌었다. 

-> GCC = 컴파일러 

전처리기 -> 컴파일러 -> 어셈블러 -> 링커 

위 과정으로 되는것을 GCC 하나로 모두 통일 및 진행시켜서 소스파일을 실행파일로 생성시키는것이다.


GCC는 옵션이 아주 많이 있지만, 자주 쓰이는 옵션은 제한 되어있다.

--help : 간단한 옵션을 출력

--version : gcc의 버젼을 출력

-o : 출력 파일명을 지정할 때 사용

-c : 링킹 과정을 진행 하지 않고 .o 파일인 오브젝트 파일까지만 생성

-S : 어셈블러까지 진행 하지 않고, 컴파일러까지의 출력은 .S 어셈블러 파일을 생성

-O1 ~ -O3 : 최적화 수준을 지정합니다. 숫자가 클수록 높은 수준의 최적화

-g : 디버깅을 위한 정보를 컴파일 하면서 생성

-D : define 을 할수 있는 옵션

-l (엘) : 라이브러리 이름을 지정

 -L : 추가 라이브러리 디렉토리를 지정

-W : 모든 에러 메시지 출력

-w : 모든 에러 메시지를 출력 하지 않음

-I(아이) : 추가 헤더 파일이 있는 디렉토리를 지정

 

외의 자세한 사항은 매뉴얼 명령어를 참고할수있다. 

터미널을 연후 입력창에  'man gcc'를 입력합니다.

728x90