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

다중 스레드 모듈이 DLL인지 나타내고 런타임 라이브러리의 정식 또는 디버그 버전을 지정합니다.

구문

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

설명

옵션 설명
/MD 애플리케이션에서 런타임 라이브러리의 다중 스레드별 및 DLL별 버전을 사용하게 됩니다. _MT_DLL을 정의하고 컴파일러가 라이브러리 이름 MSVCRT.lib를 .obj 파일에 배치하게 만듭니다.

이 옵션을 사용하여 컴파일한 애플리케이션은 MSVCRT.lib에 정적으로 연결됩니다. 이 라이브러리는 링커가 외부 참조를 확인할 수 있는 코드의 계층을 제공합니다. 실제 작업 코드는 MSVCR versionnumber.DLL에 포함되며, MSVCRT.lib와 연결된 애플리케이션에 런타임에 사용할 수 있어야 합니다.
/MDd _DEBUG, _MT_DLL을 정의하고 애플리케이션에서 런타임 라이브러리의 디버그 다중 스레드 DLL별 버전을 사용하게 됩니다. 또한 컴파일러가 라이브러리 이름 MSVCRTD.lib를 .obj 파일에 배치하게 만듭니다.
/MT 애플리케이션에서 런타임 라이브러리의 다중 스레드 정적 버전을 사용하게 됩니다. _MT를 정의하며, 링커가 LIBCMT.lib를 사용하여 외부 기호를 확인하도록 컴파일러가 라이브러리 이름인 LIBCMT.lib를 .obj 파일에 추가합니다.
/MTd _DEBUG_MT를 정의합니다. 또한, 이 옵션은 컴파일러가 .obj 파일에 라이브러리 이름 LIBCMTD.lib를 배치하여 링커가 LIBCMTD.lib를 사용하여 외부 기호를 확인하도록 만듭니다.
/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 런타임 라이브러리 참조를 참조하세요.

DLL에 대한 자세한 내용은 Visual Studio에서 C/C++ DLL 만들기를 참조하세요.

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

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>C/C++>코드 생성 속성 페이지를 선택합니다.

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

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

참고 항목

MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문