본문 바로가기

프로그램언어/C/C++

컴파일 과정 & gcc 옵션 요약

-o 옵션 : gcc에서 만들 실행 파일명을 정하는 것. 안지정하면 a.out
%gcc -o filter filter_driver.c define_stack.c global_var.c


-c 옵션 : 컴파일하지만 링크하지는 않는 다는 것을 의미 
%gcc -c filter_driver.c


-D 옵션 : 소스코드의 #define 문과 같다. 심볼에 대한 값을 지정
% gcc -c -DDOC_FILE=\"info\" -DUSE_POLL filter_driver.c
첫 번째 -D 옵션은 DOC_FILE 을 info 라는 문자열로 대치한다는 것
두 번째 -D 옵션은 USE_POLL 심볼을 정의한다.


-I 옵션 : 헤더파일이 위치한 디렉토리 지정
% gcc -c -I../headers filter_driver.c


-l 옵션 : 라이브러리를 지정. 파일명과 함께 붙여 쓴다.
% gcc -o plot main.o plot_line.o -lm
-lm 옵션은 수학 라이브러리를 포함한다는 것을 지정


-L 옵션 : 라이브러리 폴더를 찾아서 지정
% gcc -o plot -L/src/local/lib main.o plot_line.o -lm


-E 옵션 : 프로그램을 컴파일 하는 대신 전처리된 코드를 표준 출력으로 내보냄 <전처리>

-S 옵션 : 어셈블리 언어로 나온 결과를 저장 .c 대신 .s 가 붙는 파일을 만들어 낸다. <컴파일>

-c 옵션 : .o 로 끝나는 오브젝트 파일 생성 <어셈블>

 


[ C 언어 옵션 ]
-v 옵션 : (verbose) 컴파일러의 버전과 각 단계에서 실행하는 자세한 사항을 출력 (어떤 옵션으로 컴파일 하였는지)

-w 옵션 : 모든 경고 메시지가 나오지 않도록

-W 옵션 : 합법적이지만 다소 모호한 코딩에 대하여 부가적인 경고 메시지를 출력

-Wall 옵션 : 모호한 코딩에 대하여 훨씬 더 자세한 경고 메시지를 출력

 

 


[ 라이브러리 지정 옵션 ]

-static 옵션 : 공유 라이브러리가 아닌 정적 라이브러리와 링크

-shared 옵션 : 가능한 한 공유 라이브러리와 링크하고 공유 라이브러리가 없는 경우에는 정적 라이브러리와 링크

 

 


[ 디버깅, 프로파일링 옵션 ]

-p 옵션 : 프로그램을 prof 로 프로파일링 할 수 있도록 링크. mon.out 파일 생성됨. 프로그램 실행 통계 수치를 담고 있다.

 

[출처] [본문스크랩] 컴파일 과정 & gcc 옵션 요약|작성자 으랏차차

'프로그램언어 > C/C++' 카테고리의 다른 글

Posix Thread Example  (0) 2012.03.24
pthread server 예제  (0) 2012.03.24
Pthread API Reference  (1) 2012.03.24
유용하게 사용하는 매크로 함수  (0) 2012.03.24
[AIX]dynamic library & static library  (0) 2012.03.24