유니버설 C런타임 라이브러리에 대해서

Visual C++2015에서는 C런타임(CRT) 라이브러리가 크게 리팩터링 되어서 Universal CRT(UCRT)와 그 이외의 런타임(vcruntime140.dll ) 2종류로 구성되어 있다.

 

UCRT에는 널리 이용되는 표준적인 C 런타임 라이브러리 코드가 구현 되어 있으며 안정된 API를 갖추고 있기 때문에 Visual Studio의 릴리스마다 버전 변경할 필요가 없는 Windows OS의 컴포넌트의 일부로서 자리 매김 되어 있다.

 

UCRT Windows 10에는 기본으로 설치되어 있지만 이전 OS에 대해서는 Visual C++2015 재 배포 가능 패키지를 사용하여 설치할 수 있다.

UCRT에 대해서는 아래의 블로그 글을 참조.

Introducing the Universal CRT

https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/  

 

애플리케이션 개발과 배포 시에 상기의 변경에 대해서 의식할 필요는 거의 없으나 CRT 배포 방법으로 "로컬 배치"를 검토하고 있는 경우에는 UCRT의 로컬 배치에 관하여 주의할 필요가 있다.

 

 

Visual C++2015에서 CRT 로컬 배치에 대해서

애플리케이션의 실행에 필요한 C 런타임 라이브러리를 실행 환경에 배포하는 방법으로는 재 배포 가능 패키지 등을 사용하여 시스템 폴더에 런타임을 설치하는 방법이 일반적이며, 이와 같이 시스템 폴더에 런타임을 설치하는 것을 "집중 배치"라 부른다.

 

이에 대한 시스템 요건 등에 의한 집중 배치를 채용하기 어려운 경우는 애플리케이션 배포 처 폴더에 런타임을 배치할 수 있으며 이러한 배치 방법은 "로컬 배치"라 부른다.

 

집중 배치와 로컬 배치에 대한 자세한 내용은 아래의 문서를 참조.

 

배치 방법 선택

https://msdn.microsoft.com/ja-jp/library/ms235316.aspx

 

로컬 배치할 때 Windows 10보다 이전의 OS에서는 전술의 UCRT도 실행 환경에 배치할 필요가 있다는 것에 유의하자. 구체적으로는 Visual Studio 2015를 설치한 환경에서 아래의 폴더에 있는 DLL을 모두 exe와 같은 폴더에 배치할 필요가 있다.

 

<UCRT 배포 원 폴더: 64 bit OS Visual Studio 2015를 설치하고 있는 경우>

(64 bit응용 프로그램용)C:\Program Files(x86)\Windows Kits\10\Redist\ucrt\DLLs\x64

(32 bit응용 프로그램용)C:\Program Files(x86)\Windows Kits\10\Redist\ucrt\DLLs\x86

 

또한 UCRT 이외의 CRT는 기존대로 redist 폴더 아래에 저장되어 있다.

 

<CRT 배포 원 폴더: 64 bit OS Visual Studio 2015를 설치하고 있는 경우>

(64 bit응용 프로그램용)C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\redist\x64

(32 bit응용 프로그램용)C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\redist\x86

 

 

Visual C++2015 응용 프로그램에서 C 런타임 라이브러리를 로컬 배치할 필요가 있는 경우에는 위 내용에 대해서 유의하자.

 

 

 

 

 

출처: https://blogs.msdn.microsoft.com/jpvsblog/2016/08/04/ucrt_local_deployment/

 

 

 

저작자 표시
신고
by 흥배 2016.09.20 08:00

티스토리 툴바