vcpkg는 CMake와 원활하게 통합되어 설치된 패키지를 프로젝트에서 자동으로 사용할 수 있도록 합니다. vcpkg가 통합되는 메커니즘은 CMake 도구 체인 파일을 제공하는 것입니다.
CMake가 프로젝트를 처음 구성할 때 내부 검색 루틴을 실행하여 실행 가능한 도구 체인 (컴파일러, 링커 등)을 찾습니다. 이 검색은 .의 project() 함수 내에서 발생합니다 CMakeLists.txt.
도구 체인 선택 프로세스를 사용자 지정하기 위해 CMake는 도구 체인 파일이라고 하는 사용자 지정 CMake 언어 스크립트 사용을 지원합니다. 도구 체인 파일은 변수를 설정하여 지정됩니다 CMAKE_TOOLCHAIN_FILE . CMake는 제공된 도구 체인 스크립트의 콘텐츠를 평가하고 그에 따라 변수 정의, 필요한 빌드 도구 경로 및 기타 빌드 매개 변수(예: 교차 컴파일 플래그)를 설정합니다.
vcpkg 도구 체인(<vcpkg-root>/scripts/buildsystems/vcpkg.cmake)을 사용하도록 설정 CMAKE_TOOLCHAIN_FILE 하면 vcpkg는 도구 체인 파일 메커니즘을 활용하여 코드를 삽입하여 기본 제공 CMake 함수와 투명하게 통합합니다.
매니페스트 모드에서 도구 체인은 위와 함께 매니페스트 파일(vcpkg.json파일)을 검색하고 실행 vcpkg install 하여 프로젝트의 종속성을 자동으로 획득합니다.
호출 중에 project() 도구 체인 파일이 평가되므로 vcpkg 설정을 수정하는 모든 CMake 수준 변수는 첫 번째 호출 project()전에 설정해야 합니다. ABI 해시 변경을 초래하는 vcpkg 설정을 수정하는 경우 CMake 프로젝트를 다시 구성해야 할 수도 있습니다.
CMake를 사용하여 완전히 작동하는 예제는 패키지 설치 및 사용 예제: sqlite를 참조하세요.
CMAKE_TOOLCHAIN_FILE
참고
파일에서 CMakeList.txt 설정한 CMAKE_TOOLCHAIN_FILE 경우 변수가 호출되기 전에 설정되었는지 확인합니다project().
vcpkg 도구 체인 파일을 사용하도록 구성된 프로젝트(CMake 설정을 CMAKE_TOOLCHAIN_FILE통해)는 표준 CMake 함수를 find_package()find_path()find_library()사용하여 vcpkg에서 라이브러리를 찾을 수 있습니다.
CMake 사전 설정을 사용하여 도구 체인 파일을 지정하는 것이 좋습니다. 예를 들어 환경 변수 VCPKG_ROOT를 정의한 경우 다음 CMakePresets.json 을 사용하고 구성 줄을 전달할 --preset debug 수 있습니다.
vcpkg는 라이브러리를 찾기 위한 CMake의 기본 메커니즘을 지원합니다. find_package()find_library()find_path() 특정 CMake 지원을 사용하여 라이브러리를 설치할 때 vcpkg는 라이브러리를 사용하는 방법에 대한 사용 정보를 표시합니다.
The package zlib is compatible with built-in CMake targets:
find_package(ZLIB REQUIRED)
target_link_libraries(main PRIVATE ZLIB::ZLIB)
vcpkg는 포함 또는 링크 경로를 프로젝트에 자동으로 추가하지 않습니다. 헤더 전용 라이브러리를 사용하려면 모든 플랫폼에서 올바르게 작동하는 라이브러리를 사용할 find_path() 수 있습니다.
# To find and use catch2
find_path(CATCH_INCLUDE_DIR NAMES catch.hpp PATH_SUFFIXES catch2)
target_include_directories(main PRIVATE ${CATCH_INCLUDE_DIR})
IDE 통합
Visual Studio/Visual Studio Code
Visual Studio 및 Visual Studio Code 모두에서 CMake 사전 설정을 사용하는 것이 좋습니다.
도구 체인 설정(File > Settings Windows 및 Linux, CLion > Preferences macOS)을 열고 CMake 설정(Build, Execution, Deployment > CMake)으로 이동합니다. 에서 CMake options다음 줄을 추가합니다.
이 변수는 에 나열된 기능 외에도 기본 기능의 활성화를 제어합니다 VCPKG_MANIFEST_FEATURES. 설정 ON하면 기본 기능이 자동으로 활성화되지 않습니다.
기본값은 OFF입니다.
VCPKG_INSTALL_OPTIONS
이 변수는 자동 설치 중에 vcpkg 도구에 전달할 추가 명령줄 매개 변수 목록으로 설정할 수 있습니다.
VCPKG_PREFER_SYSTEM_LIBS
경고
이 기능은 더 이상 사용되지 않습니다. 대신 빈 오버레이 포트를 사용합니다.
이 변수는 vcpkg가 해당 경로를 CMAKE_PREFIX_PATHCMAKE_LIBRARY_PATH 앞에 추가하는 대신 추가할지 여부를 제어하고 CMAKE_FIND_ROOT_PATH 도구 체인/시스템 라이브러리/패키지 후에 vcpkg 라이브러리/패키지를 찾을 수 있도록 합니다.
기본값은 OFF입니다.
VCPKG_FEATURE_FLAGS
이 변수는 자동 설치 중에 vcpkg 도구에 전달할 기능 플래그 목록으로 설정하여 실험적 동작에 옵트인할 수 있습니다.
Azure HPC는 최고의 애플리케이션 성능, 스케일링 기능 및 가치를 제공하기 위해 최첨단 프로세서와 HPC급 InfiniBand 상호 연결을 사용하는 HPC 및 AI 워크로드용으로 특화된 클라우드 기능입니다. 사용자는 Azure HPC를 사용하여 비즈니스 및 기술 요구 사항이 달라질 때 동적으로 할당될 수 있는 고가용성의 HPC 및 AI 기술을 통해 뛰어난 혁신, 생산성 및 비즈니스 민첩성을 얻을 수 있습니다. 이 학습 경로는 Azure HPC에서 시작하는 데 도움이 되는 모듈 시리즈입니다. 가장 관심 있는 토픽을 선택하거나 하나씩 진행할 수 있습니다.