자습서: Visual Studio에서 MSBuild에서 패키지 설치 및 사용

이 자습서에서는 MSBuild, vcpkg 및 Visual Studio와 함께 라이브러리를 사용하는 fmt C++ "헬로 월드" 프로그램을 만드는 방법을 보여줍니다. 종속성을 설치하고, 간단한 애플리케이션을 구성, 빌드 및 실행합니다.

필수 조건:

1 - vcpkg 설정

  1. 리포지토리 복제

    첫 번째 단계는 GitHub에서 vcpkg 리포지토리를 복제하는 것입니다. 리포지토리에는 vcpkg 실행 파일을 획득하는 스크립트와 vcpkg 커뮤니티에서 기본 큐레이팅된 오픈 소스 라이브러리의 레지스트리가 포함되어 있습니다. 이렇게 하려면 다음을 실행합니다.

    git clone https://github.com/microsoft/vcpkg.git
    

    vcpkg 큐레이팅된 레지스트리는 2,000개가 넘는 오픈 소스 라이브러리 집합입니다. 이러한 라이브러리는 vcpkg의 연속 통합 파이프라인에서 함께 작동하도록 유효성을 검사했습니다. vcpkg 리포지토리에는 이러한 라이브러리에 대한 소스 코드가 포함되지 않지만 시스템에 빌드하고 설치하는 레시피 및 메타데이터가 있습니다.

  2. 부트스트랩 스크립트 실행

    이제 vcpkg 리포지토리를 복제했으므로 디렉터리로 이동하여 vcpkg 부트스트랩 스크립트를 실행합니다.

    cd vcpkg && bootstrap-vcpkg.bat
    
    cd vcpkg; .\bootstrap-vcpkg.bat
    
    cd vcpkg && ./bootstrap-vcpkg.sh
    

    부트스트랩 스크립트는 필수 구성 요소 검사 수행하고 vcpkg 실행 파일을 다운로드합니다.

    정말 간단하죠. vcpkg가 설정되고 사용할 준비가 된 것입니다.

  1. Visual Studio MSBuild와 통합

다음 단계는 MSBuild에서 찾을 수 있도록 vcpkg의 사용자 전체 인스턴스를 설정하는 것입니다.

.\vcpkg.exe integrate install

이 출력은 다음과 같습니다.

All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.

2 - Visual Studio 프로젝트 설정

  1. Visual Studio 프로젝트 만들기

    • "콘솔 애플리케이션" 템플릿을 사용하여 Visual Studio에서 새 프로젝트 만들기

    새 C++ Windows 콘솔 애플리케이션 만들기

    Visual Studio에서 새 C++ Windows 콘솔 애플리케이션을 만드는 방법을 보여 주는 Visual Studio UI의 스크린샷

    • 프로젝트 이름을 "helloworld"로 지정합니다.
    • "솔루션 및 프로젝트를 동일한 디렉터리에 배치"에 대한 확인란을 선택합니다.
    • "만들기" 단추를 클릭합니다.

    MSBuild C++ 프로젝트 이름 지정

    MSBuild C++ 프로젝트의 이름을 지정하고 "만들기" 단추를 클릭하기 위한 Visual Studio UI의 스크린샷

  2. VCPKG_ROOT 환경 변수를 구현합니다.

    Visual Studio에서 기본 제공 개발자 PowerShell 창을 엽니다.

    기본 제공 개발자 Powershell 열기

    기본 제공 PowerShell 개발자 창에 대한 Visual Studio UI 스크린샷

    다음 명령을 실행합니다.

    $env:VCPKG_ROOT = "C:\path\to\vcpkg"
    $env:PATH = "$env:VCPKG_ROOT;$env:PATH"
    

    환경 변수 설정

    VCPKG_ROOT 설정하고 PATH에 추가하는 방법을 보여 주는 기본 제공 PowerShell 개발자 창의 Visual Studio UI 스크린샷

    참고 항목

    이러한 방식으로 환경 변수를 설정하면 현재 터미널 세션에만 영향을 줍니다. 모든 세션에서 이러한 변경 내용을 영구적으로 변경하려면 Windows 시스템 환경 변수 패널을 통해 설정합니다.

    Visual Studio에서 개발자 명령 프롬프트를 엽니다.

    Visual Studio 개발자 명령 프롬프트를 엽니다.

    개발자 명령 프롬프트에 대한 Visual Studio UI의 스크린샷

    다음 명령을 실행합니다.

    set VCPKG_ROOT="C:\path\to\vcpkg"
    set PATH=%VCPKG_ROOT%;%PATH%
    

    환경 변수 설정

    VCPKG_ROOT 설정하고 PATH에 추가하는 방법을 보여 주는 Visual Studio 개발자 명령 프롬프트의 스크린샷

    참고 항목

    이러한 방식으로 환경 변수를 설정하면 현재 터미널 세션에만 영향을 줍니다. 모든 세션에서 이러한 변경 내용을 영구적으로 변경하려면 Windows 시스템 환경 변수 패널을 통해 설정합니다.

    설정을 VCPKG_ROOT 사용하면 Visual Studio에서 vcpkg 인스턴스를 찾을 수 있습니다. PATH 셸에서 직접 vcpkg 명령을 실행할 수 있도록 추가합니다.

  3. 매니페스트 파일을 생성하고 종속성을 추가합니다.

    다음 명령을 실행하여 vcpkg 매니페스트 파일(vcpkg.json)을 만듭니다.

    vcpkg new --application
    

    vcpkg new 명령은 프로젝트 디렉터리에 파일과 vcpkg-configuration.json 파일을 추가 vcpkg.json 합니다.

    fmt 패키지를 종속성으로 추가합니다.

    vcpkg add port fmt
    

    vcpkg.json 이제 다음을 포함해야 합니다.

    {
        "dependencies": [
            "fmt"
        ]
    }
    

    매니페스트 파일입니다. vcpkg는 매니페스트 파일을 읽고 설치할 종속성을 알아보고 MSBuild와 통합하여 프로젝트에 필요한 종속성을 제공합니다.

    생성된 vcpkg-configuration.json 파일은 프로젝트의 종속성에 최소 버전 제약 조건을 배치하는 기준을 도입합니다. 이 파일 수정은 이 자습서의 범위를 벗어납니다. 이 자습서에서는 적용되지 않지만 파일을 소스 제어에 유지 vcpkg-configuration.json 하여 다양한 개발 환경에서 버전 일관성을 유지하는 것이 좋습니다.

3 - 프로젝트 파일 설정

helloworld.cpp 파일을 수정합니다.

내용을 helloworld.cpp 다음 코드로 바꿉다.

#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

이 원본 파일에는 라이브러리의 <fmt/core.h> 일부인 헤더가 fmt 포함됩니다. 함수는 main() 콘솔에 "헬로 월드!" 메시지를 출력하기 위해 호출 fmt::print() 합니다.

참고 항목

MSBuild가 처음으로 프로젝트를 구성할 때 프로젝트에 오류 물결선이 있습니다. vcpkg 종속성을 획득하여 제거하는 프로젝트를 빌드합니다.

4 - 매니페스트 모드 사용

프로젝트의 프로젝트 속성 페이지로 이동합니다. 구성 속성 vcpkgYesUse vcpkg manifest에서 .> MSBuild는 vcpkg 매니페스트에서 종속성을 설치하기 전에 이 속성이 설정되었는지 여부를 검사.

프로젝트 속성에서 매니페스트 모드 사용

Visual Studio 프로젝트 속성에서 vcpkg 매니페스트 모드를 사용하도록 설정하는 스크린샷

세 쌍둥이와 같은 다른 설정은 프로젝트에서 vcpkg가 감지하는 기본값으로 채워지고 프로젝트를 구성할 때 유용합니다.

5 - 프로젝트 빌드 및 실행

  1. 프로젝트를 빌드합니다.

    Visual Studio에서 프로젝트를 빌드하고 vcpkg 종속성을 획득하려면 누릅니 Ctrl+Shift+B 다.

MSBuild가 vcpkg.json 파일을 검색하고 매니페스트가 프로젝트에서 사용하도록 설정된 경우 MSBuild는 매니페스트의 종속성을 빌드 전 단계로 설치합니다. 종속성은 프로젝트의 빌드 출력 디렉터리의 디렉터리에 설치 vcpkg_installed 됩니다. 라이브러리에서 설치한 모든 헤더를 직접 사용할 수 있으며 설치된 모든 라이브러리는 자동으로 연결됩니다.

참고 항목

vcpkg install 는 라이브러리에 대한 디버그 및 릴리스 구성을 모두 빌드합니다. 릴리스 라이브러리만 빌드하려면 triplet에 추가 VCPKG_RELEASE_ONLY 합니다.

  1. 애플리케이션을 실행합니다.

    마지막으로 실행 파일을 실행합니다.

    실행 파일 실행

    실행 파일을 실행하기 위한 Visual Studio UI의 스크린샷

    다음 메시지가 표시됩니다.

    프로그램 출력

    프로그램 출력의 스크린샷 - "헬로 월드!"

다음 단계

vcpkg MSBuild 통합에 대해 vcpkg.json 자세히 알아보려면 참조 설명서를 참조하세요.