다음을 통해 공유


/MD, /MT, /LD(런타임 라이브러리 사용)

다중 스레드 모듈이 DLL인지 나타낼 수 있고 런타임 라이브러리의 정식 또는 디버그 버전을 선택할 수 있습니다.

/MD[d]
/MT[d]
/LD[d]

설명

옵션

설명

/MD

응용 프로그램에서 다중 스레드 DLL 전용 버전의 런타임 라이브러리를 사용하도록 지정합니다._MT_DLL을 정의하고, 라이브러리 이름인 MSVCRT.lib를 .obj 파일에 추가하도록 컴파일러에 지정합니다.

이 옵션을 사용하여 컴파일한 응용 프로그램은 MSVCRT.lib에 정적으로 연결됩니다.이 라이브러리는 링커가 외부 참조를 확인할 수 있는 코드의 계층을 제공합니다.실제 작업 코드는 MSVCR100.DLL에 포함되어 있습니다. 이 dll은 런타임에 MSVCRT.lib에 링크된 응용 프로그램에서 사용할 수 있어야 합니다.

/MDd

_DEBUG, _MT_DLL을 정의하고, 응용 프로그램에서 디버그 다중 스레드 DLL 전용 버전의 런타임 라이브러리를 사용하도록 지정합니다.또한, 이 옵션을 사용하면 컴파일러는 라이브러리 이름인 MSVCRTD.lib를 .obj 파일에 추가합니다.

/MT

응용 프로그램에서 다중 스레드 정적 버전의 런타임 라이브러리를 사용하도록 지정합니다._MT를 정의하며, 링커가 LIBCMT.lib를 사용하여 외부 기호를 확인하도록 컴파일러가 라이브러리 이름인 LIBCMT.lib를 .obj 파일에 추가합니다.

/MTd

_DEBUG_MT를 정의합니다.또한, 이 옵션을 사용하면 링커가 LIBCMTD.lib를 사용하여 외부 기호를 확인하도록 컴파일러가 라이브러리 이름인 LIBCMTD.lib를 .obj 파일에 추가합니다.

/LD

DLL을 만듭니다.

/DLL 옵션을 링커로 전달합니다.링커는 DllMain 함수를 찾지만 이 함수가 꼭 있어야 하는 것은 아닙니다.DllMain 함수를 작성하지 않으면 링커는 TRUE를 반환하는 DllMain 함수를 삽입합니다.

DLL 시작 코드를 링크합니다.

내보내기 파일(.exp)을 명령줄에서 지정하지 않으면 가져오기 라이브러리(.lib)를 만듭니다. 그런 다음, 사용자의 DLL을 호출하는 응용 프로그램에 가져오기 라이브러리를 링크합니다.

/Fe(EXE 파일 이름 지정)를 .exe 파일이 아닌 DLL 파일로 이름을 지정하는 것으로 해석합니다. 따라서 기본 프로그램 이름은 basename.exe가 아니라 basename.dll이 됩니다.

/MD를 명시적으로 지정하지 않으면 /MT가 암시적으로 적용됩니다.

/LDd

디버그 DLL을 만듭니다._MT_DEBUG를 정의합니다.

C 런타임 라이브러리 및 /clr(공용 언어 런타임 컴파일)를 사용하여 컴파일할 때 사용되는 라이브러리에 대한 자세한 내용은 CRT 라이브러리 기능를 참조하십시오.

링커의 특정 호출에 전달되는 모든 모듈은 동일한 런타임 라이브러리 컴파일러 옵션(/MD, /MT, /LD)을 사용하여 컴파일해야 합니다.

런타임 라이브러리의 디버그 버전 사용에 대한 자세한 내용은 C 런타임 라이브러리 참조를 참조하십시오.

적당한 C 런타임 라이브러리를 선택하는 방법은 기술 자료 문서 Q140584에서도 설명합니다.

DLL에 대한 자세한 내용은 Visual C++ Dll을 참조하십시오.

Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다.자세한 내용은 방법: 프로젝트 속성 페이지 열기를 참조하십시오.

  2. C/C++ 폴더를 클릭합니다.

  3. 코드 생성 속성 페이지를 클릭합니다.

  4. 런타임 라이브러리 속성을 수정합니다.

프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면

참고 항목

참조

컴파일러 옵션

컴파일러 옵션 설정