날마다 새롭게 또 날마다 새롭게

gcc 명령어 사용법 본문

Linux

gcc 명령어 사용법

아무유 2012. 11. 7. 09:48

■ 기본 명령

gcc -o test test.c

■ 최적화 옵션

O0 - 기본값. 최적화를 하지 않는다.

O1 - 코드 크기와 실행 시간을 줄이는 최적화만 수행한다.

O2 - 메모리 공간과 속도를 희생하지 않는 범위에서 모든 최적화를 진행한다.

loop unrolling과 function inlining 에 대한 최적화는 진행하지 않는다.

O3 - O2 옵션 최적화 및 인라인 함수와 레지스터 최적화를 진행한다.

OS - O2 옵션 최적화 중 코드 크기를 증가시키는 최적화는 진행하지 않는다.


■ 헤더파일 경로 설정 옵션

-I[path] - 헤더 파일 탐색할 경로 설정 옵션


■ 공유 라이브러리 만들기

1. gcc -fpic이나 -FPIC 를 사용하여 오브젝트 파일을 만든다.

※ fpic, FPIC 는 '위치에 독립적인 코드'를 만들어준다. -fPIC는 언제나 동작하지만 -fpic를 사용하는 것보다 용량이 큰 코드를 생성한다. -fpic는 용량이 작고 속도가 빠른 코드를 만들지만 전역 심볼이나 코드의 크기 같은 것에서 플랫폼에 독립적이다.

gcc -fPIC -g -c -Wall a.c

gcc -fpic -g -c -Wall b.c

2. 공유 라이브러리를 생성한다.

공유 라이브러리를 생성하는 명령 형식은 아래와 같다.

gcc -shared -Wl,-soname,your_soname -o library_name file_list library_list

gcc -shared -Wl,-soname,libmystuff.so.1 -o libmystuff.so.1.0.1 a.o b.o -lc

■ 공유 라이브러리를 사용하기

1. 공유 라이브러리 지정 경로 설정

 라이브러리가 표준 디렉토리(/usr/lib, /lib)에 없는 경우 링커에게 공유 라이브러리가 있는 경로에 대해서 말해줘야 한다.

① export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:directory_with_shared_libraries

② ldconfig -n directory_with_shared_libraries

2. 공유 라이브러리 의존성 확인

ldd library_name

참고 : http://wiki.kldp.org/KoreanDoc/html/gcc_and_make/gcc_and_make-2.html




Comments