GCC compiler (내부 매크로, Makefile)
GCC
Gnu compiler collection C, C++, objective C, portlan, Java 등 컴파일러를 포함하는 의미
소스파일을 이용해 실행파일을 만들 때까지 필요한 프로그램을 차례로 실행시키는 툴
과정
*.c -> (전처리 ccp) -> *.i -> (컴파일 cc1) -> *.s -> (어셈블 as) -> *.o -> (링크id) -> a.out
소스파일->전처리된 파일->어셈블리어 파일->오브젝트 파일->실행 파일
Option
( -c ) : 오브젝트파일까지만 컴파일 하고 링크하는 과정 생략 (gcc -c c.c ) => c.o
( -o ) : 바이너리 형식의 출력 파일 이름 지정, 없을시 a.out (gcc -o file file.c)
( -I ) : 헤더 파일을 검색하는 디렉토리 목록을 추가(이 옵션이 없으면 해당 파일에서 헤더파일을 검색하지만 있다면,
gcc age -c -l /root 와 같이 경로를 설정함 (대문자 아이)
분리 컴파일
소스가 길 경우 나눠서 코딩한 후 묶어서 컴파일
(gcc main.c hi.c -o test)
Gcc -c main.c// gcc -c hi.c// gcc main.o hi.o -otest
Make : gcc는 여러 파일중 어떤 파일이 수정된다면, 모든 파일을 다시 컴파일 하고 링크해야 하지만,
make는 수정된 파일을 자동으로 알아내 컴파일 하고 수정하지 않은 파일은 기존 오브젝트파일 이용한다.
( , ) 같은 건 사용하지 않고 공백으로 한다. 명령을 시작하기 전에는 TAB, 다른 곳에선 TAB 불가, 순서는 중요하지 않다.
Makefile
'SW > LINUX' 카테고리의 다른 글
GDB (0) | 2017.09.05 |
---|---|
버전관리, SVN (0) | 2017.09.05 |
리눅스 명령어 - PROCESS (0) | 2017.09.05 |
리눅스 명령어 - INFO (0) | 2017.09.05 |
리눅스 명령어 - USER (0) | 2017.09.05 |