- Today
- Total
프로그래밍 농장
gcc의 개념 및 c언어 컴파일 해보기 [ Linux ] 본문
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'를 입력합니다.