Skip to end of metadata
Go to start of metadata

요약

/MD : Single Threaded Support
/MT : Multi Threaded Support
/ML : Shared MFC DLL

MFC DLL type

Compiler Option

Preprocessor defines

Regular, static link DLL

/MT or /MTd

_WINDLL, _USRDLL

Regular, shared MFC DLL

/ML or /MLd

_WINDLL, _USRDLL, _AFXDLL

Extension DLL

/MD or /MDd

_WINDLL, _AFXDLL, _AFXEXT

  • MFC DLL이 아닌 Win32 DLL 인 경우는 /MT, /ML, /MD 옵션 제거

Pre-compiled header관련

MSVC는 C 혹은 C++ code (inline code 포함)를 pre-compile하는 옵션을 제공하는데 이것은 stable code를 미리 파일에 컴파일된 상태를 저장하여 개발시에 변경된 코드와 연결하여 stable code를 재컴파일하지 않고 변경된 부분만을 컴파일하는 기능

옵션

설명

/Fp파일명

Pre-compiled header file(PCH) 이름 지정 (디폴트 파일명을 사용하지 않을 경우 사용)

/Yc파일명

Pre-compiled header 파일 생성

/Yu파일명

Build 동안 precompiled header 파일을 사용

/YX

pre-compiled header를 자동으로 처리 (Automatic)
자동으로 MSVC.PCH 파일을 생성하거나 사용하여 처리



  • /Yc 옵션의 경우 만약 #pragma hdrstop 옵션과 같이 사용되면 헤더 뿐만이 아니라 소스 코드도 pre-compile.
  • Yc 옵션을 통해 파일명(헤더파일)을 지정한 후 Yu 옵션을 통해 해당 파일을 사용해야 하며 Automatic 방법으로 생성된 파일은 지정하게 되면 아래의 에러 발생

    fatal error C1010: unexpected end of file while looking for precompiled header directive

사용예

#include <afxwin.h> // Include header for class library
#include "resource.h" // Include resource definition
#include "myapp.h" // Include information specific to this application

위의 예제 파일에서 다음과 같은 명령를 수행하면

CL /YcMYAPP.H PROG.CPP

컴파일러는 MYAPP.PCH 파일에 afxwin.h, resource.h, myapp.h를 처리한 결과를 저장

  • No labels