커널 Kconfig 파일 간의 종속성 select
과 차이점은 무엇입니까 depends on
?
config FB_CIRRUS
tristate "Cirrus Logic support"
depends on FB && (ZORRO || PCI)
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
---help---
This enables support for Cirrus Logic GD542x/543x based boards on
Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum.
위의 예에서, 어떻게되어 FB_CIRRUS
diffrently에 관한 FB && (ZORRO || PCI)
그것이보다는 FB_CFB_FILLRECT
, FB_CFB_COPYAREA
그리고 FB_CFB_IMAGEBLIT
?
최신 정보
depend on
컴파일 순서와 관련하여 실제로 많은 것을 하지 않는 것으로 나타났습니다 .
예를 들어. AppB를 성공적으로 빌드하려면 정적으로 링크 된 LibB를 먼저 빌드해야합니다. depends on LibB
AppB에 대한 Kconfig 설정 은 LibB를 먼저 빌드하지 않습니다. 설정 select LibB
합니다.
답변
depends on
=y
이 옵션을 구성 하려면 기호가 이미 양수로 선택되어 있어야 함 ()을 나타냅니다 . 예를 들어, depends on FB && (ZORRO || PCI)
means FB
가 선택되어 있어야하고 (&&) ZORRO
또는 (||) 중 하나가 선택되어 있어야합니다 PCI
. 와 같은 make menuconfig
경우 옵션을 표시할지 여부를 결정합니다.
select
긍정적으로 기호를 설정합니다. 예를 들어 select FB_CFB_FILLRECT
의미 FB_CFB_FILLRECT=y
합니다. 이는 다른 구성 옵션의 잠재적 인 종속성을 충족시킵니다. 커널 문서는 “보이는”기호 (사용자가 선택 / 선택 해제 할 수 있음) 또는 종속성이있는 기호에 대해서는 이를 사용하지 않는 것이 좋습니다.
참조 : https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt
답변
depends
이는 전제 조건 (뒤의 부울 구성)이 충족 된 경우에만 메뉴에 옵션이 표시됨을 의미합니다.
select
즉, 사용자가이 옵션을 선택하면 인수로 지정된 옵션 select
이 자동 선택됩니다.
답변
나는 다음과 같이 생각하고 싶다.
-
select
depends
기능에 대해 가능한 종속성이 하나 뿐인 경우 “의 하위 집합”입니다 .가능한 종속성은 하나뿐이므로
select
해당 옵션을 자동으로 선택하고 먼저 수동으로 종속성을 명시 적으로 선택하는 작업을 저장합니다.이 자동화는 오직 하나의 가능한 의존성을 갖는 서브셋 제한으로부터 얻는 것입니다.
-
depends
더 일반적이며 기능이 여러 구현이있는 인터페이스에 의존하는 경우에 작동합니다.예를 들어, 4.15에는 Classic 및 Extended의 두 가지 BPF 구현이 있습니다.
따라서이
BPF_JIT
기능은 사용 가능한 구현 중 하나 이상에 따라 다릅니다.config BPF_JIT depends on HAVE_CBPF_JIT || HAVE_EBPF_JIT
에 대한 두 가지 가능한 구현이 있기 때문에
BFP_JIT
Kconfig가 올바른 것을 자동으로 선택할 수 없었습니다.때로는 “종속성이 충족되지 않으면 기본적으로 이것을 선택하십시오”라고 말하면 더 자동화 할 수 있습니다.
“menuconfig에 다른 옵션이 숨겨져있는”효과도 있지만, 이들은 단지 보풀입니다 🙂