일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- test
- Gradle
- 다윈
- web3js
- null safety
- porterduff
- C
- Glide
- firebase
- fabric-sdk-java
- Realm
- 컴파일
- kotlin
- error
- dataginding
- Android
- LAYER_TYPE_SOFTWARE
- Exception
- quick-start
- coroutines
- bigquery
- log
- 스트리밍
- Hyperledger
- vuepress
- hardwareacceleration
- fabic
- ethereum
- 안드로이드
- convert
- Today
- Total
날마다 새롭게 또 날마다 새롭게
gcc 명령어 사용법 본문
■ 기본 명령
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