컴파일러 옵션
이 문서에서는 F# 컴파일러에 대한 컴파일러 명령줄 옵션에 대해 설명합니다. 이 명령은 dotnet build
F# 프로젝트 파일에서 F# 컴파일러를 호출합니다. F# 프로젝트 파일은 확장으로 기록 .fsproj
됩니다.
컴파일 환경은 프로젝트 속성을 설정하여 제어할 수도 있습니다. .NET Core를 대상으로 하는 프로젝트의 경우 추가 명령줄 옵션을 지정하는 데 "기타 플래그" 속성 <OtherFlags>...</OtherFlags>
.fsproj
이 사용됩니다.
컴파일러 옵션 사전순 목록
다음 표에는 사전순으로 나열된 컴파일러 옵션이 나와 있습니다. 일부 F# 컴파일러 옵션은 C# 컴파일러 옵션과 유사합니다. 이 경우 C# 컴파일러 옵션 항목에 대한 링크가 제공됩니다.
컴파일러 옵션 | 설명 |
---|---|
--allsigs |
컴파일의 각 소스 파일에 대한 새 서명 파일을 생성하거나 기존 서명 파일을 다시 생성합니다. 서명 파일에 대한 자세한 내용은 서명을 참조 하세요. |
-a filename.fs |
지정된 파일에서 라이브러리를 생성합니다. 이 옵션은 간단한 형식입니다 --target:library filename.fs . |
--baseaddress:address |
DLL을 로드할 기본 설정 기준 주소를 지정합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /baseaddress(C# 컴파일러 옵션)를 참조하세요. |
--codepage:id |
필요한 페이지가 시스템의 현재 기본 코드 페이지가 아닌 경우 컴파일 중에 사용할 코드 페이지를 지정합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /code 페이지(C# 컴파일러 옵션)를 참조하세요. |
--consolecolors |
오류 및 경고가 콘솔에서 색으로 구분된 텍스트를 사용하도록 지정합니다. |
--crossoptimize[+ or -] |
모듈 간 최적화를 사용하거나 사용하지 않도록 설정합니다. |
--delaysign[+|-] |
강력한 이름 키의 공용 부분만 사용하여 어셈블리에 지연 서명합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /delaysign(C# 컴파일러 옵션)을 참조하세요. |
--checked[+|-] |
오버플로 검사 생성을 사용하거나 사용하지 않도록 설정합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /checked(C# 컴파일러 옵션)를 참조하세요. |
--debug[+|-] -g[+|-] --debug:[full|pdbonly] -g: [full|pdbonly] |
디버그 정보 생성을 사용하거나 사용하지 않도록 설정하거나 생성할 디버그 정보의 유형을 지정합니다. 기본값은 full 실행 중인 프로그램에 연결할 수 있도록 하는 것입니다. pdbonly pdb(프로그램 데이터베이스) 파일에 저장된 제한된 디버깅 정보를 가져옵니다.동일한 이름의 C# 컴파일러 옵션에 해당합니다. 자세한 내용은 참조하세요. /debug(C# 컴파일러 옵션). |
--define:symbol -d:symbol |
조건부 컴파일에 사용할 기호를 정의합니다. |
--deterministic[+|-] |
결정적 어셈블리(모듈 버전 GUID 및 타임스탬프 포함)를 생성합니다. 이 옵션은 wild카드 버전 번호와 함께 사용할 수 없으며 포함 및 이식 가능한 디버깅 형식만 지원합니다. |
--doc:xmldoc-filename |
지정된 파일에 대한 XML 문서 주석을 생성하도록 컴파일러에 지시합니다. 자세한 내용은 XML Documentation을 참조하세요. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /doc(C# 컴파일러 옵션)를 참조하세요. |
--fullpaths |
컴파일러에 정규화된 경로를 생성하도록 지시합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /fullpaths(C# 컴파일러 옵션)를 참조하세요. |
--help -? |
모든 컴파일러 옵션에 대한 간략한 설명을 포함하여 사용 정보를 표시합니다. |
--highentropyva[+|-] |
향상된 보안 기능인 ASLR(높은 엔트로피 주소 공간 레이아웃 임의화)을 사용하거나 사용하지 않도록 설정합니다. OS는 애플리케이션에 대한 인프라(예: 스택 및 힙)가 로드되는 메모리의 위치를 임의로 지정합니다. 이 옵션을 사용하도록 설정하면 운영 체제에서 이 임의화를 사용하여 64비트 컴퓨터에서 전체 64비트 주소 공간을 사용할 수 있습니다. |
--keycontainer:key-container-name |
강력한 이름의 키 컨테이너를 지정합니다. |
--keyfile:filename |
생성된 어셈블리에 서명하기 위한 공개 키 파일의 이름을 지정합니다. |
--lib:folder-name -I:folder-name |
참조되는 어셈블리를 검색할 디렉터리를 지정합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /lib(C# 컴파일러 옵션)를 참조하세요. |
--linkresource:resource-info |
지정된 리소스를 어셈블리에 연결합니다. 리소스 정보의 형식은 다음과 같습니다. filename[name[public|private]] 이 옵션을 사용하여 단일 리소스를 연결하는 것은 전체 리소스 파일을 옵션과 함께 포함하는 대안입니다 --resource .이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /linkresource(C# 컴파일러 옵션)를 참조하세요. |
--mlcompatibility |
다른 버전의 ML과의 호환성을 위해 설계된 기능을 사용할 때 나타나는 경고를 무시합니다. |
--noframework |
.NET Framework 어셈블리에 대한 기본 참조를 사용하지 않도록 설정합니다. |
--nointerfacedata |
F#특정 메타데이터를 포함하는 어셈블리에 일반적으로 추가되는 리소스를 생략하도록 컴파일러에 지시합니다. |
--nologo |
컴파일러를 시작할 때 배너 텍스트를 표시하지 않습니다. |
--nooptimizationdata |
인라인 구문을 구현하는 데 필수적인 최적화만 포함하도록 컴파일러에 지시합니다. 모듈 간 인라인을 억제하지만 이진 호환성을 향상시킵니다. |
--nowin32manifest |
컴파일러에 기본 Win32 매니페스트를 생략하도록 지시합니다. |
--nowarn:warning-number-list |
숫자로 나열된 특정 경고를 사용하지 않도록 설정합니다. 각 경고 번호를 쉼표로 구분합니다. 컴파일 출력에서 경고에 대한 경고 번호를 검색할 수 있습니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /nowarn(C# 컴파일러 옵션)을 참조하세요. |
--optimize[+|-] [optimization-option-list] -O[+|-] [optimization-option-list] |
최적화를 사용하거나 사용하지 않도록 설정합니다. 일부 최적화 옵션은 나열하여 선택적으로 사용하지 않도록 설정하거나 사용하도록 설정할 수 있습니다. 다음과 같습니다. nojitoptimize , nojittracking , nolocaloptimize , nocrossoptimize notailcalls . |
--out:output-filename -o:output-filename |
컴파일된 어셈블리 또는 모듈의 이름을 지정합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /out(C# 컴파일러 옵션)을 참조하세요. |
--pathmap:path=sourcePath,... |
실제 경로를 컴파일러에서 출력되는 소스 경로 이름에 매핑하는 방법을 지정합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /pathmap(C# 컴파일러 옵션)을 참조하세요. |
--pdb:pdb-filename |
출력 디버그 PDB(프로그램 데이터베이스) 파일의 이름을 지정합니다. 이 옵션은 사용하도록 설정된 경우에만 적용됩니다 --debug .이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /pdb(C# 컴파일러 옵션)를 참조하세요. |
--platform:platform-name |
생성된 코드가 지정된 플랫폼(x86 Itanium 또는)에서만 실행되도록 지정하거나 x64 플랫폼 이름을 anycpu 선택한 경우 생성된 코드가 모든 플랫폼에서 실행될 수 있도록 지정합니다.이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /platform(C# 컴파일러 옵션)을 참조하세요. |
--preferreduilang:lang |
기본 출력 언어 문화권 이름(예: es-ES , ja-JP )을 지정합니다. |
--quotations-debug |
F# 따옴표 리터럴 및 반영된 정의에서 파생된 식에 대해 추가 디버깅 정보를 내보내야 되도록 지정합니다. 디버그 정보는 F# 식 트리 노드의 사용자 지정 특성에 추가됩니다. 코드 따옴표 및 Expr.CustomAttributes를 참조하세요. |
--reference:assembly-filename -r:assembly-filename |
F# 또는 .NET Framework 어셈블리의 코드를 컴파일되는 코드에서 사용할 수 있도록 합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /reference(C# 컴파일러 옵션)를 참조하세요. |
--resource:resource-filename |
관리되는 리소스 파일을 생성된 어셈블리에 포함합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /resource(C# 컴파일러 옵션)를 참조하세요. |
--sig:signature-filename |
생성된 어셈블리를 기반으로 서명 파일을 생성합니다. 서명 파일에 대한 자세한 내용은 서명을 참조 하세요. |
--simpleresolution |
MSBuild 확인 대신 디렉터리 기반 Mono 규칙을 사용하여 어셈블리 참조를 확인되도록 지정합니다. 기본값은 Mono에서 실행되는 경우를 제외하고 MSBuild 해상도를 사용하는 것입니다. |
--standalone |
F# 라이브러리와 같은 추가 어셈블리 없이 자체적으로 실행되도록 모든 종속성이 포함된 어셈블리를 생성하도록 지정합니다. |
--staticlink:assembly-name |
지정된 어셈블리와 이 어셈블리에 의존하는 모든 참조된 DLL을 정적으로 연결합니다. DLL 이름이 아닌 어셈블리 이름을 사용합니다. |
--subsystemversion |
생성된 실행 파일에서 사용할 OS 하위 시스템의 버전을 지정합니다. Windows 8.1의 경우 6.02, Windows 7의 경우 6.01, Windows Vista의 경우 6.00을 사용합니다. 이 옵션은 DLL이 아닌 실행 파일에만 적용되며 애플리케이션이 특정 버전의 OS에서만 사용할 수 있는 특정 보안 기능에 의존하는 경우에만 사용해야 합니다. 이 옵션을 사용하고 사용자가 더 낮은 버전의 OS에서 애플리케이션을 실행하려고 하면 오류 메시지와 함께 실패합니다. |
--tailcalls[+|-] |
tail IL 명령을 사용하거나 사용하지 않도록 설정하여 스택 프레임이 비상 재귀 함수에 다시 사용되도록 합니다. 기본적으로 이 옵션은 사용하도록 설정됩니다. |
--target:[exe|winexe|library|module] filename |
생성된 컴파일된 코드의 형식 및 파일 이름을 지정합니다.
|
--times |
컴파일에 대한 타이밍 정보를 표시합니다. |
--utf8output |
UTF-8 인코딩에서 컴파일러 출력을 인쇄할 수 있습니다. |
--warn:warning-level |
경고 수준(0에서 5)을 설정합니다. 기본 수준은 3입니다. 각 경고에는 심각도에 따라 수준이 지정됩니다. 수준 5는 수준 1보다 더 많지만 덜 심각한 경고를 제공합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /warn(C# 컴파일러 옵션)을 참조하세요. |
--warnon:warning-number-list |
기본적으로 꺼져 있거나 다른 명령줄 옵션에 의해 비활성화될 수 있는 특정 경고를 사용하도록 설정합니다. 목록은 쉼표로 구분되어 있습니다. |
--warnaserror[+|-] [warning-number-list] |
경고를 오류로 보고하는 옵션을 사용하거나 사용하지 않도록 설정합니다. 사용하지 않도록 설정하거나 사용하도록 설정할 특정 경고 번호를 제공할 수 있습니다. 명령줄의 뒷부분에 있는 옵션은 명령줄 앞부분에 있는 옵션을 재정의합니다. 예를 들어 오류로 보고하지 않으려는 경고를 지정하려면 다음을 지정합니다 --warnaserror+ --warnaserror-:warning-number-list .이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /warnaserror(C# 컴파일러 옵션)를 참조하세요. |
--win32manifest:manifest-filename |
Win32 매니페스트 파일을 컴파일에 추가합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /win32manifest(C# 컴파일러 옵션)을 참조하세요. |
--win32res:resource-filename |
Win32 리소스 파일을 컴파일에 추가합니다. 이 컴파일러 옵션은 동일한 이름의 C# 컴파일러 옵션과 동일합니다. 자세한 내용은 /win32res((C#) 컴파일러 옵션)을 참조하세요. |
옵트인 경고
F# 컴파일러는 다음과 같은 몇 가지 옵트인 경고를 지원합니다.
숫자 | 요약 | 수준 | 설명 |
---|---|---|---|
21 | 런타임에 재귀 검사 | 5 | 런타임에 초기화 사운드를 위해 재귀 사용이 검사 경고합니다. |
22 | 순서대로 실행된 바인딩 | 5 | 정방향 참조로 인해 재귀 바인딩이 순서대로 실행될 수 있는 경우 경고합니다. |
52 | 구조체의 암시적 복사본 | 5 | 변경할 수 없는 구조체가 복사되면 경고하여 원래 구조체가 작업에 의해 변경되지 않도록 합니다. |
1178 | 암시적 같음/비교 | 5 | F# 형식 선언이 암시적으로 유추되거나 NoEquality NoComparison 형식에 특성이 없는 경우 경고합니다. |
1182 | 사용되지 않는 변수 | 해당 없음 | 사용하지 않는 변수에 대해 경고합니다. |
3180 | 암시적 힙 할당 | 해당 없음 | 변경 가능한 로컬이 닫기에 의해 캡처되었기 때문에 참조 셀로 암시적으로 할당되는 경우 경고합니다. |
3366 | 인덱스 표기법 | 해당 없음 | F# 5 인덱스 표기법이 사용될 때 경고합니다 expr.[idx] . |
3517 | InlineIfLambda 오류 | 해당 없음 | 예를 들어 명시적 람다 대신 계산된 함수 값이 제공된 경우 F# 최적화 프로그램이 값을 인라인 InlineIfLambda 하지 못하는 경우 경고합니다. |
3387 | op_Implicit 변환 |
해당 없음 | 메서드 인수에서 .NET 암시적 변환이 사용되는 경우 경고합니다. |
3388 | 추가 암시적 업캐스트 | 해당 없음 | F# 6에 추가된 추가 업캐스트가 암시적으로 사용되는 경우 경고합니다. |
3389 | 암시적 확대 | 해당 없음 | 암시적 숫자 확대를 사용하는 경우 경고합니다. |
3390 | 잘못된 형식의 XML 문서 주석 | 해당 없음 | XML 문서 주석의 형식이 여러 가지 방법으로 잘못되면 경고합니다. |
관련 경고 번호를 사용하거나 <WarnOn>NNNN</WarnOn>
어디에 있는지 NNNN
를 사용하여 /warnon:NNNN
이러한 경고를 사용하도록 설정할 수 있습니다.
(구문 <WarnOn>FSNNNN</WarnOn>
(예: .)을 사용할 수도 있습니다. <WarnOn>FS3388</WarnOn>
속성이 WarnOn
여러 번 지정된 경우 마지막 항목만 사용됩니다. 여러 경고를 지정하려면 속성에 WarnOn
쉼표로 구분된 문자열을 해당 내용으로 한 번 제공합니다. <WarnOn>3388,3559</WarnOn>
관련 문서
제목 | 설명 |
---|---|
F# Interactive 옵션 | F# 인터프리터 fsi.exe 지원하는 명령줄 옵션에 대해 설명합니다. |
프로젝트 속성 참조 | 빌드 옵션을 제공하는 프로젝트 속성 페이지를 포함하여 프로젝트의 UI에 대해 설명합니다. |
.NET