글 수 162
define 찾아봐도 보이지 않고,
Compiler 단에서 뭔가 하는 거 같은데 ...
혹시 as( 어셈블러 ) 가 뭔가 하는건가요 ?
preprocessing해야하는 어셈블리 파일 (.S)을 컴파일할 때 정의됩니다.
(Makefile 파일에서 gcc 호출 시 인자로 넘겨줍니다.)
define 찾아봐도 보이지 않고,
Compiler 단에서 뭔가 하는 거 같은데 ...
혹시 as( 어셈블러 ) 가 뭔가 하는건가요 ?
preprocessing해야하는 어셈블리 파일 (.S)을 컴파일할 때 정의됩니다.
(Makefile 파일에서 gcc 호출 시 인자로 넘겨줍니다.)
gcc 컴파일 과정을 살펴보면 대략 적으로 다음과 같습니다.
cc1 -E 명령으로 전처리기가 동작하게 됩니다.
헤더 파일 삽입이나 매크로 치환등의 작업을 통해
.i 파일을 생성합니다.
cc1 이라는 c 컴파일러가 여러가지 과정 (generic 트리 생성 , gimple tree , rtl ....최적화)
을 통해서 .s 어셈블리 파일을 만들어 주죠.
어셈블리 언어로구성된어셈블리파일을
컴퓨터가 알아 먹을수 있도록 기계어로 변경을 as가 해주는 거죠.
이렇게 해서 나온 .o(오브젝트 파일) 을 ld나 coolect2 같은 링커를 통해서 링킹
과정을 거치고 나면 비로서 실행 가능한 바이너리가 생성이 됩니다.