본문 바로가기

프로그래밍/C,C++

GCC 옵션

 

빌드옵션

 

-Idir : include

-march : 아키텍처

-mtune : 

-mfloat-abi : fp 방식

-mfpu : vfp 사용 유무

-msoft-float : fpu가 없는 cpu를 위해 모든 float 연산을 어셈블 코드로 변경

-On : 최적화 옵션

-D : 매크로 외부 define 설정

-ffunction-sections : 사용되지 않는 함수의 text.section 제거

-fomit-frame-pointer : 불필요한 프레임 포인터 제거

-fstack-protector : 버퍼 오버플로우를 피하기 위한 스택 프로텍터로 ssp 라이브러리를 활성화 한다.

안드로이드의 경우 libssp가 보이지 않으므로 지원하지 않는 듯 보인다..(확실치 않음)

arm-eabi-4.3.3의 경우 이 옵션이 활성화 되면 함수내 배열 선언시 segmentation fault가 발생한다.

-funswitch-loops : 

-fno-short-enums :

-fno-builtin-printf : 

-fno-strict-aliasing :

-finline-limit=n :

-fasm :

 

-nostdinc : 기본 include 디렉토리를 검색하지 않음

 

-g : gdb를 사용하기 위한 디버깅 정보 포함

-v : 컴파일 과정 표시

 

> 참조 : http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Optimize-Options.html

 

 

 

 

 

링커 옵션

 

GNU GCC 의 링커 관련 옵션

 

ld 를 사용해 각 오브젝트를 링크해 output 파일을 생성할 수 있으나 일반적인 경우는

gcc 를 사용해 링크까지 수행하게 된다.

 

 

-aarchive

-ashared

-adefault

HP/UX 호환 옵션

 

-b input-format

--format=input-format

입력되는 바이너리 포맷

 

-e entyr

--entyr=entry

엔트리 포인터 설정

 

-E

--export-dynamic

동적으로 링크된 실행파일 생성 시 모든 심벌 정보를 테이블에 추가한다.

동적으로 라이브러리등을 사용하는 경우 이 옵션을 설정한다.

 

-larchive

--library=archive

libarchive.a 파일을 링크할 파일 리스트에 포함시킴.

 

-Lpath

--library-path=path

 라이브러리를 검색할 라이브러리 path

 

-o output

--output=output

 

-s

--strip-all

모든 심벌 정보를 출력 파일에서 제거

 

-Bdynamic

-dy

-call_shared

동적 라이브러리들을 링크

이 옵션 뒤에 -l 옵션으로 라이브러리를 기술한다.

 

-Bstatic

-dn

-non_shared

-static

공유 라이브러리를 링크하지 않는다.

 

-Bshareable

-shared

공유 라이브러리 생성

 

-nostdlib

링크시 표준 라이브러리를 사용하지 않는다.

-EB

bin-endian

 

-EL

little-endian

-Wl

링커에 직접 전달할 링커 옵션 ,(콤마)로 구분한 옵션들을 직접 전달한다.

-rpath dir

라이브러리 검색 경로에 추가

 

-rpath-link dir

라이브러리간 종속성이 있는 다른 라이브러리를 링크하기 위한 

첫번째로 검색할 위치 각 디렉토리는 콜론(:) 으로 구분해 지정할 수 있다. 

 

-x

로컬 심볼을 제거한다.

 

-e

엔트리포인트 심볼을 변경한다. -e name 형태로 사용하며, 기본값은 _start 이다.

'프로그래밍 > C,C++' 카테고리의 다른 글

C# OLEDB 엑셀 읽기  (0) 2016.02.21
[C#] 파일 읽고,쓰기 기초  (0) 2013.09.12
[C#] 이미지 처리 기본 사항들  (0) 2013.09.12
[C#] 이벤트  (0) 2013.09.12
[C#] 폼 띄우기  (0) 2013.09.12
POSIX 쓰레드 함수들  (0) 2010.04.16
[Linux] 세마포어 설정  (0) 2010.04.15
[Linux] 라이브러리  (0) 2010.01.28
바이트오더~ 비트 스트림~  (0) 2009.06.04
delete obj, delete [] obj 차이  (0) 2009.06.04