티스토리 뷰
Major optons
There are zillions of them, but there are some the most often used ones:
- To compile : -c
- Specify output filename: -o <filename>
- Include debugging symbols: -g
- GDB friendly output: -ggdb
- Show all (most) warnings: -Wall
- Be stubborn about standards: -ansi and -pedantic
- Optimizations: -O, -O*
Compiler path options
-I dir : 해당 디렉토리에 있는 헤더파일을 찾아서 컴파일 할때 쓸수있다.
-L dir : 라이브러리를 어디서 찾을지 지정해준다.
-I : 공유라이브러리를 사용할수 있도록 해준다.
Compiler preprocessor options
-E : Preprocess only
-D def : Define def
-U def : Undefine def
Compiler warning options
-v : Verbose mode 여러가지 메시지를 많이 찍어준다.
-w : warning 을 적게 찍어준다.
-W : 더많은 waring 메시지를 찍어준다.
-Wall : 중요한 warning을 다 찍어준다.
Compiler debugging options
-g : Include debugging information 여러가지 정보를 넘겨준다.
-pg : Provide profile information for gprof 어떤부분에서 시간을 많이 소모하는지 알수 있다.
Compiler input/output options
-c : Stop after creating object files, don't link 어셈블링하고 ,오브젝트 만드는데 까지만 수행하게 한다.
-o file : 파일 이름으로 오브젝트를 생성하라
Compiler control options
-ansi : c90이라는 표준에 맞게 작성된 프로그램을 컴파일 하는 명령어
-pedantic : gcc 확장을 사용하지 말라는 명령어
-std=c99 : c99 표준에 맞도록 컴파일 해주는 명령어
-static : shared library말고 static을 사용하라는 명령어
-O[lev] : 가장 많이 사용되는 optimization은 2이다.
-Os : optimization을 할때 size를 고려하여 한다.
Common set of options
-O2 -Wall -pedantic (최적화를 2단계하고 중요한 경고 메시지를 출력하고 c표준에 맞게 하라)
★ Don't use -pedantic when compiling Linux Kernel, which uses many gcc extensions
-pedantic은 리눅스상에서 사용하면 안된다. 리눅스 커널은 gcc extension을 많이 사용하기 때문이다.
'IT > Embedded Software' 카테고리의 다른 글
[임베디드 SW 공학] gcc 동적 라이브러리 (0) | 2017.09.18 |
---|---|
[임베디드 SW 공학] gcc 정적 라이브러리 (0) | 2017.09.18 |
[임베디드 SW 공학] 쉘(Shell) 반복문 (0) | 2017.09.09 |
[임베디드 SW 공학] 쉘(Shell) 조건문 (1) | 2017.09.09 |
[임베디드 SW 공학] 쉘(Shell) 기본 문법 (0) | 2017.09.08 |