다음을 통해 공유


개념: 기본 기능

이 문서에서는 기본 기능의 개념, 해당 의미 및 효과적인 관리를 위한 전략에 대해 설명합니다.

기본 기능은 명시적으로 사용하지 않도록 설정하지 않는 한 포트가 설치될 때 자동으로 포함되는 기능 집합입니다. 이러한 기능을 통해 라이브러리는 종속성 그래프 복잡성이 증가하더라도 기본 기능의 기준 수준을 얻을 수 있습니다.

참고 항목

모든 포트에 기본 기능이 포함된 것은 아닙니다.

기본 기능의 역할

기본 기능은 모듈식 기능이 있는 라이브러리에서 필수 기능을 사용할 수 있도록 하여 사용자에게 친숙한 환경을 제공합니다.

예를 들어 다양한 보관 형식을 추출할 수 있는 라이브러리는 각 형식을 선택적 기능으로 사용할 수 있습니다. 기본 기능이 없으면 라이브러리에 추출 알고리즘이 기본적으로 포함되지 않아 초기 사용이 복잡할 수 있습니다.

명시적으로 요청하지 않는 한 vcpkg에서 설치한 패키지에는 항상 기본 기능이 포함됩니다. 이 동작은 매니페스트 파일 또는 vcpkg 설치 호출을 통해 사용자가 직접 요구하는 패키지와 종속성으로 필요한 패키지에 적용됩니다.

매니페스트 모드에서 기본 기능 사용 안 함과

"default-features": false 종속성 선언에 특성을 추가하여 기본 기능 설치를 사용하지 않도록 설정합니다.

기본 기능의 자동 설치를 사용하지 않도록 설정하는 것은 사용자가 요청한 종속성에 대해서만 가능합니다.

전이적 종속성에 대한 기본 기능을 사용하지 않도록 설정하려면 프로젝트 매니페스트에 대한 직접 종속성으로 승격해야 합니다.

클래식 모드에서 기본 기능 사용 안 함과

설치하려는 패키지의 요청된 기능의 일부로 특수 core 기능을 추가합니다.

참고 항목

매니페스트 모드의 작동 방식과 유사하게 전이적 종속성에 대한 기본 기능을 사용하지 않도록 설정하려는 경우 명령줄에서 직접 설치 요청으로 승격해야 합니다.

예제 1: 기본 기능이 있는 라이브러리 포함

{
  "name": "my-application",
  "version": "0.15.2",
  "dependencies": [
    "extract-any"
  ]
}

이 시나리오에서는 extract-any 기본 기능과 함께 설치되어 즉각적인 기능을 보장합니다.

예제 2: 기본 기능 사용 안 됨(매니페스트 모드)

{
  "name": "my-application",
  "version": "0.15.2",
  "dependencies": [
    {
      "name": "extract-any",
      "default-features": false
    }
  ]
}

extract-any 여기서는 기본 기능 없이 설치되므로 맞춤형 설정을 사용할 수 있습니다.

예제 3: 기본 기능 사용 안 됨(클래식 모드)

vcpkg install extract-any[core]

extract-any 여기서는 특수 core 기능을 사용하여 기본 기능 없이 설치됩니다.

기본 기능 상호 작용

  1. 기본 기능(기본 동작)을 사용하여 포트 설치: vcpkg install extract-any 특정 기능 요청이 없기 때문에 기본 기능(extract-any[format-a])과 함께 설치 extract-any 됩니다.

  2. 기본값vcpkg install extract-any[format-b]을 사용하지 않도록 설정하지 않고 기능을 지정하면 지정된 () 및 기본(format-b) 기능(format-aextract-any[format-a,format-b])을 모두 사용하여 설치 extract-any 됩니다.

  3. 기본 기능을 명시적으로 사용하지 않도록 설정: vcpkg install extract-any[core] 명시적으로 제외되는 extract-any [core] 기본 기능 없이 설치합니다.

  4. 전이적 종속성 및 기본 기능: vcpkg install extract-any[format-b] portB 종속extract-any[format-a]된 경우 portB 설치될 수 extract-any[format-a,format-b] portB 있지만 '의 기본 기능을 명시적으로 사용하지 않도록 설정extract-any하지는 않습니다.

  5. 포트를 다양한 기능 사양과 결합: vcpkg install extract-any[format-b] portB 명시적으로 제외되지 않는 한 기본 기능을 포함하여 extract-any설치extract-any[format-a, format-b] portB합니다.

  6. 기본 기능을 포괄적으로 사용하지 않도록 설정: vcpkg install extract-any[core] portB 기본값을 extract-any 제외하고 명시적으로 요청된 기능만 사용하여 설치되도록 합니다.

기본 기능 관리

프로젝트 내에서 기본 기능을 효과적으로 관리하려면 다음을 수행합니다.

  • 명시적: 필요한 기능만 지정합니다. 필요한 경우 기본 기능을 사용하지 않도록 설정하는 데 사용합니다 [core] .
  • 종속성 검사: 종속성 확인을 이해하고 그에 따라 구성을 조정하는 데 사용합니다 vcpkg depend-info <port> .
  • 재정의 및 기준 사용: 버전 관리 및 기준 기능을 활용하여 종속성 확인에 대한 제어를 강화합니다.

자세한 내용은

기본 기능을 관리하기 위한 명확한 전략을 채택하면 프로젝트의 종속성 관리를 간소화하여 애플리케이션의 기능에 필요한 것만 포함하도록 할 수 있습니다.