빌드옵션
-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 |