본문 바로가기
코스웨어/12년 내장형하드웨어

cl과 link 옵션입니다. 참고하세요

by 알 수 없는 사용자 2012. 9. 13.
728x90
반응형

링커 옵션


옵션 용도

@

지시 파일을 지정합니다.

/ALIGN

각 섹션의 정렬 방식을 지정합니다.

/ALLOWBIND

DLL을 바인딩할 수 없도록 지정합니다.

/ALLOWISOLATION

매니페스트 조회 동작을 지정합니다.

/ASSEMBLYDEBUG

관리되는 이미지에 DebuggableAttribute를 추가합니다.

/ASSEMBLYLINKRESOURCE

관리되는 리소스에 대한 링크를 만듭니다.

/ASSEMBLYMODULE

MSIL(Microsoft Intermediate Language) 모듈을 어셈블리로 가져오도록 지정합니다.

/ASSEMBLYRESOURCE

관리되는 리소스 파일을 어셈블리에 포함시킵니다.

/BASE

프로그램의 기준 주소를 설정합니다.

/CLRIMAGETYPE

CLR 이미지의 형식(IJW, pure 또는 safe)을 설정합니다.

/CLRSUPPORTLASTERROR

P/Invoke 메커니즘을 통해 호출한 함수의 마지막 오류 코드를 저장합니다.

/CLRTHREADATTRIBUTE

CLR 프로그램의 진입점에 적용하려는 스레드 특성을 지정합니다.

/CLRUNMANAGEDCODECHECK

/CLRUNMANAGEDCODECHECK는 링커가 생성하여 관리 코드에서 네이티브 DLL로 호출되는 PInvoke 스텁에 링커가 SuppressUnmanagedCodeSecurity 특성을 적용할지 여부를 지정합니다.

/DEBUG

디버깅 정보를 만듭니다.

/DEF

모듈 정의 파일(.def)을 링커에 전달합니다.

/DEFAULTLIB

외부 참조를 확인할 때 지정된 라이브러리를 검색합니다.

/DELAY

DLL의 지연 로드를 제어합니다.

/DELAYLOAD

지정된 DLL을 지연 로드시킵니다.

/DELAYSIGN

어셈블리에 부분적으로 서명합니다.

/DLL

DLL을 빌드합니다.

/DRIVER

Windows NT 커널 모드 드라이버를 만듭니다.

/ENTRY

시작 주소를 설정합니다.

/errorReport

내부 링커 오류를 Microsoft에 보고합니다.

/EXPORT

함수를 내보냅니다.

/FIXED

기본 기준 주소에서만 로드할 수 있는 프로그램을 만듭니다.

/FORCE

확인되지 않거나 기호가 두 번 이상 정의된 경우에도 링크를 완료하도록 합니다.

/FUNCTIONPADMIN

핫 패치할 수 있는 이미지를 만듭니다.

/HEAP

힙 크기를 바이트 단위로 설정합니다.

/IDLOUT

.idl 파일과 기타 MIDL 출력 파일의 이름을 지정합니다.

/IGNOREIDL

특성 정보가 .idl 파일로 처리되지 않도록 합니다.

/IMPLIB

기본 가져오기 라이브러리 이름을 무시합니다.

/INCLUDE

기호 참조를 강제 적용합니다.

/INCREMENTAL

증분 링크를 제어합니다.

/KEYCONTAINER

어셈블리에 서명할 키 컨테이너를 지정합니다.

/KEYFILE

어셈블리에 서명할 키 또는 키 쌍을 지정합니다.

/LARGEADDRESSAWARE

응용 프로그램에서 2GB 이상의 주소를 지원하도록 컴파일러에 지시합니다.

/LIBPATH

사용자가 환경 라이브러리 경로를 재정의할 수 있도록 합니다.

/LTCG

링크 시간 코드 생성을 지정합니다.

/MACHINE

대상 플랫폼을 지정합니다.

/MANIFEST

side-by-side 매니페스트 파일을 만듭니다.

/MANIFESTDEPENDENCY

매니페스트 파일에 <dependentAssembly> 섹션을 지정합니다.

/MANIFESTFILE(매니페스트 파일 이름 지정)

매니페스트 파일의 기본 이름을 변경합니다.

/MAP

맵 파일을 만듭니다.

/MAPINFO

지정한 정보를 맵 파일에 포함시킵니다.

/MERGE

섹션을 결합합니다.

/MIDL

MIDL 명령줄 옵션을 지정합니다.

/NOASSEMBLY

.NET Framework 어셈블리를 만들지 않습니다.

/NODEFAULTLIB

외부 참조를 확인할 때 모든 또는 지정한 기본 라이브러리를 무시합니다.

/NOENTRY

리소스 전용 DLL을 만듭니다.

/NOLOGO

시작 배너를 표시하지 않습니다.

/NXCOMPAT

실행 파일을 Windows 데이터 실행 방지 기능과 호환되는지 테스트된 것으로 표시합니다.

/OPT

LINK 최적화를 제어합니다.

/ORDER

COMDAT을 미리 결정된 순서로 이미지에 배치합니다.

/OUT

출력 파일 이름을 지정합니다.

/PDB

PDB(프로그램 데이터베이스) 파일을 만듭니다.

/PDBSTRIPPED

전용 기호가 없는 PDB(프로그램 데이터베이스) 파일을 만듭니다.

/PGD

프로필 기반 최적화를 위한 .pgd 파일을 지정합니다.

/PROFILE

성능 도구 프로파일러와 함께 사용할 수 있는 출력 파일을 생성합니다.

/RELEASE

.exe 헤더의 체크섬을 설정합니다.

/SAFESEH

이미지에 안전한 예외 처리기 테이블이 포함되도록 지정합니다.

/SECTION

섹션의 특성을 재정의합니다.

/STACK

스택 크기를 바이트 단위로 설정합니다.

/STUB

MS-DOS 스텁 프로그램을 Win32 프로그램에 연결합니다.

/SUBSYSTEM

운영 체제에 .exe 파일의 실행 방법을 지정합니다.

/SWAPRUN

운영 체제에서 링커 출력을 실행하기 전에 스왑 파일로 복사하도록 지정합니다.

/TLBID

링커에서 생성한 형식 라이브러리의 리소스 ID를 지정할 수 있도록 합니다.

/TLBOUT

.tlb 파일과 기타 MIDL 출력 파일의 이름을 지정합니다.

/TSAWARE

터미널 서버에서 실행하도록 디자인된 응용 프로그램을 만듭니다.

/VERBOSE

링커 진행 메시지를 표시합니다.

/VERSION

버전 번호를 할당합니다.

/WX

링커 경고를 오류로 처리합니다.



컴파일러 옵션 사전순 목록


옵션 용도

@

지시 파일을 지정합니다.

/?

컴파일러 옵션을 나열합니다.

/AI

#using 지시문에 전달된 파일 참조를 확인하기 위해 검색할 디렉터리를 지정합니다.

/analyze

코드 분석을 활성화합니다.

/arch

코드 생성 시 SSE 또는 SSE2 명령을 사용합니다. x86 전용입니다.

/bigobj

.obj 파일에서 주소 지정 가능한 섹션의 수를 늘립니다.

/C

전처리하는 동안 주석을 유지합니다.

/c

링크하지 않고 컴파일합니다.

/clr

공용 언어 런타임에 실행할 출력 파일을 생성합니다.

/D

상수와 매크로를 정의합니다.

/doc

XML 파일에 대해 문서 주석을 처리합니다.

/E

전처리기 출력을 표준 출력에 복사합니다.

/EH

예외 처리 모델을 지정합니다.

/EP

전처리기 출력을 표준 출력에 복사합니다.

/errorReport

ICE(내부 컴파일러 오류) 정보를 Visual C++ 팀에 직접 제공할 수 있도록 합니다.

/F

스택 크기를 설정합니다.

/favor

AMD64와 EM64T 모두에서 특정 마이크로 아키텍처에 맞게 최적화되거나 특정 x64 아키텍처에 맞게 최적화된 코드를 생성합니다.

/FA

목록 파일을 만듭니다.

/Fa

목록 파일 이름을 설정합니다.

/FC

진단 텍스트에서 cl.exe에 전달된 소스 코드 파일의 전체 경로를 표시합니다.

/Fd

프로그램 데이터베이스 파일 이름을 바꿉니다.

/Fe

실행 파일 이름을 바꿉니다.

/FI

지정된 포함 파일을 전처리합니다.

/Fm

맵 파일을 만듭니다.

/Fo

개체 파일을 만듭니다.

/fp

부동 소수점 동작을 지정합니다.

/Fp

미리 컴파일된 헤더 파일 이름을 지정합니다.

/FR

/Fr

브라우저 파일을 생성합니다.

/FU

파일 이름이 #using 지시문에 전달된 것처럼 사용되도록 합니다.

/Fx

삽입된 코드와 소스 파일을 병합합니다.

/G1

Itanium 프로세서에 대해 최적화합니다. IPF 크로스 컴파일러나 IPF 네이티브 컴파일러에서만 사용할 수 있습니다.

/G2

Itanium2 프로세서에 맞게 최적화합니다. /G1과 /G2 중 기본값입니다. IPF 크로스 컴파일러나 IPF 네이티브 컴파일러에서만 사용할 수 있습니다.

/GA

Windows 응용 프로그램에 맞게 코드를 최적화합니다.

/Gd

__cdecl 호출 규칙을 사용합니다. x86 전용입니다.

/Ge

스택 조사를 활성화합니다.

/GF

문자열 풀링을 사용합니다.

/GH

후크 함수 _pexit를 호출합니다.

/Gh

후크 함수 _penter를 호출합니다.

/GL

전체 프로그램 최적화를 사용합니다.

/Gm

최소 재빌드를 사용합니다.

/GR

RTTI(런타임 형식 정보)를 사용합니다.

/Gr

__fastcall 호출 규칙을 사용합니다. x86 전용입니다.

/GS

보안 검사를 버퍼링합니다.

/Gs

스택 조사를 제어합니다.

/GT

정적 스레드 로컬 저장소를 사용하여 할당한 데이터의 파이버 안전을 지원합니다.

/GX

동기 예외 처리를 사용합니다.

/Gy

함수 수준 링크를 사용합니다.

/GZ

/RTC1과 동일합니다./RTC(런타임 오류 검사)

/Gz

__stdcall 호출 규칙을 사용합니다. x86 전용입니다.

/H

외부 공개 이름의 길이를 제한합니다.

/HELP

컴파일러 옵션을 나열합니다.

/homeparams

레지스터에 전달된 매개 변수를 함수 시작 시 스택의 해당 위치에 기록합니다. 이 컴파일러 옵션은 x64 컴파일러(네이티브 및 크로스 컴파일)에만 사용됩니다.

/hotpatch

핫 패치할 수 있는 이미지를 만듭니다.

/I

포함 파일의 디렉터리를 검색합니다.

/J

기본 char 형식을 변경합니다.

/LD

DLL(동적 연결 라이브러리)을 만듭니다.

/LDd

디버그 DLL(동적 연결 라이브러리)을 만듭니다.

/link

지정된 옵션을 LINK에 전달합니다.

/LN

MSIL 모듈을 만듭니다.

/MD

MSVCRT.lib를 사용하여 다중 스레드 DLL을 만듭니다.

/MDd

MSVCRTD.lib를 사용하여 디버그 다중 스레드 DLL을 만듭니다.

/MT

LIBCMT.lib를 사용하여 다중 스레드 실행 파일을 만듭니다.

/MTd

LIBCMTD.lib를 사용하여 디버그 다중 스레드 실행 파일을 만듭니다.

/nologo

초기 화면 배너를 표시하지 않습니다.

/O1

작은 코드를 만듭니다.

/O2

빠른 코드를 만듭니다.

/Ob

인라인 확장을 제어합니다.

/Od

최적화를 사용하지 않습니다.

/Og

전역 최적화를 사용합니다.

/Oi

내장 함수를 생성합니다.

/openmp

소스 코드에서 #pragma omp를 활성화합니다.

/Os

코드 크기를 우선으로 합니다.

/Ot

코드 속도를 우선으로 합니다.

/Ox

최대 최적화(/Ob1gity /Gs)를 사용합니다.

/Oy

프레임 포인터를 생략합니다. x86 전용입니다.

/QIfist

부동 소수점 형식에서 정수 계열 형식으로 변환해야 할 때 _ftol이 사용되지 않도록 합니다. x8 전용입니다.

/QIPF_B

B CPU 스태핑 오류에 따라 예기치 않은 결과를 가져오는 명령의 시퀀스를 생성하지 않습니다. IPF 전용입니다.

/QIPF_C

C CPU 스태핑 오류에 따라 예기치 않은 결과를 가져오는 명령의 시퀀스를 생성하지 않습니다. IPF 전용입니다.

/QIPF_fr32

상위 96개의 부동 소수점 레지스터를 사용하지 않습니다. IPF 전용입니다.

/QIPF_noPIC

위치 종속 코드를 사용하여 이미지를 생성합니다. IPF 전용입니다.

/QIPF_restrict_plabels

런타임에 함수를 만들지 않는 프로그램의 성능을 향상시킵니다. IPF 전용입니다.

/P

전처리기 출력을 파일에 씁니다.

/RTC

런타임 오류 검사를 사용합니다.

/showIncludes

컴파일을 하는 동안 포함 파일 목록을 표시합니다.

/Tc

/TC

C 소스 파일을 지정합니다.

/Tp

/TP

C++ 소스 파일을 지정합니다.

/U

미리 정의된 매크로를 제거합니다.

/u

미리 정의된 모든 매크로를 제거합니다.

/V

버전 문자열을 설정합니다.

/vd

숨겨진 vtordisp 클래스 멤버를 사용하거나 사용하지 않습니다.

/vmb

멤버의 포인터에 best case를 사용합니다.

/vmg

멤버의 포인터에 full generality를 사용합니다.

/vmm

다중 상속을 선언합니다.

/vms

단일 상속을 선언합니다.

/vmv

가상 상속을 선언합니다.

/W

경고 수준을 설정합니다.

/w

모든 경고를 사용하지 않습니다.

/Wall

기본적으로 비활성화되는 경고를 포함하여 모든 경고를 활성화합니다.

/WL

명령줄에서 C++ 소스 코드를 컴파일할 때 오류 및 경고 메시지에 한 줄 진단을 사용합니다.

/Wp64

64비트 이식성 문제를 검색합니다.

/X

표준 포함 디렉터리를 무시합니다.

/Y-

현재 빌드에서 미리 컴파일된 다른 모든 헤더 컴파일러 옵션을 무시합니다.

/Yc

미리 컴파일된 헤더 파일을 만듭니다.

/Yd

모든 개체 파일에 완전한 디버깅 정보를 저장합니다.

/Yl

디버그 라이브러리를 만들 때 PCH 참조를 삽입합니다.

/Yu

빌드하는 동안 미리 컴파일된 헤더 파일을 사용합니다.

/Z7

C 7.0 호환 디버깅 정보를 생성합니다.

/Za

언어 확장을 사용하지 않습니다.

/Zc

/Ze에서 표준 동작을 지정합니다./Za, /Ze(언어 확장 사용 안 함)

/Ze

언어 확장을 사용합니다.

/Zg

함수 프로토타입을 생성합니다.

/ZI

편집하며 계속하기와 호환되는 프로그램 데이터베이스에 디버깅 정보를 포함합니다.

/Zi

완전한 디버깅 정보를 생성합니다.

/Zl

.obj 파일에서 기본 라이브러리 이름을 제거합니다. x86 전용입니다.

/Zm

미리 컴파일된 헤더 메모리의 할당 제한을 지정합니다.

/Zp

구조체 멤버를 압축합니다.

/Zs

구문만 확인합니다.

/Zx

디버깅할 수 있는 최적화된 코드를 생성합니다. IPF 크로스 컴파일러나 IPF 네이티브 컴파일러에서만 사용할 수 있습니다.


728x90