.netmodule 입력 파일 형식 선택
MSIL .obj 파일(/clr로 컴파일됨)을 .netmodule 파일로 사용할 수도 있습니다. .obj 파일에는 메타데이터와 네이티브 기호가 포함됩니다. .netmodules에는 메타데이터만 포함됩니다.
/addmodule 컴파일러 옵션을 통해 MSIL .obj 파일을 다른 Visual Studio 컴파일러에 전달할 수 있습니다(하지만 .obj 파일이 결과 어셈블리의 일부가 되고 어셈블리와 함께 제공되어야 합니다). 예를 들어 Visual C# 및 Visual Basic에는 /addmodule 컴파일러 옵션이 있습니다.
참고 항목
대부분의 경우 .net 모듈을 생성한 컴파일로부터 가져온 .obj 파일을 링커에 전달해야 합니다. .dll 또는 .netmodule MSIL 모듈 파일을 링커에 전달하면 LNK1107이 발생할 수 있습니다.
소스에서 #include를 통해 참조하는 연결된 .h 파일과 함께 .obj 파일은 C++ 애플리케이션이 모듈에서 고유 형식을 사용할 수 있도록 허용하며, 반면에 .netmodule 파일에서는 C++ 애플리케이션이 관리되는 형식만 사용할 수 있습니다. .obj 파일을 #using 전달하려고 하면 네이티브 형식에 대한 정보를 사용할 수 없습니다. 대신 .obj 파일의 .h 파일을 #include.
다른 Visual Studio 컴파일러는 모듈에서 관리되는 형식만 사용할 수 있습니다.
MSVC 링커에 대한 모듈 입력으로 .netmodule 또는 .obj 파일을 사용해야 하는지 여부를 확인하려면 다음을 사용합니다.
Visual C++ 이외의 Visual Studio 컴파일러로 빌드하는 경우 .netmodule을 생성하고 .netmodule을 링커에 대한 입력으로 사용합니다.
MSVC 컴파일러를 사용하여 모듈을 생성하고 모듈을 사용하여 라이브러리 이외의 항목을 빌드하는 경우 컴파일러에서 생성한 .obj 파일을 링커에 대한 모듈 입력으로 사용합니다. 에서는 .netmodule 파일을 입력으로 사용하지 않습니다.
모듈을 사용하여 네이티브(관리되지 않는) 라이브러리를 빌드하는 경우 .obj 파일을 링커에 대한 모듈 입력으로 사용하고 .lib 라이브러리 파일을 생성합니다.
모듈이 관리되는 라이브러리를 빌드하는 데 사용되고 링커에 대한 모든 모듈 입력을 확인할 수 있는 경우(/clr:safe로 생성), .obj 파일을 링커에 대한 모듈 입력으로 사용하고 .dll(어셈블리) 또는 .netmodule(모듈) 라이브러리 파일을 생성합니다.
모듈을 사용하여 관리되는 라이브러리를 빌드하고 링커에 대한 하나 이상의 모듈 입력이 /clr로 생성되는 경우 .obj 파일을 링커에 대한 모듈 입력으로 사용하고 .dll(어셈블리)를 생성합니다. 라이브러리에서 관리되는 형식을 노출하고 C++ 애플리케이션에서 라이브러리의 네이티브 형식을 사용하려는 경우 라이브러리는 라이브러리 구성 요소 모듈에 대한 .obj 파일로 구성됩니다(소스 코드의 #include 사용하여 참조할 수 있도록 각 모듈에 대한 .h 파일도 제공하려고 합니다).