Kernel
Linux核心Kconfig中的“select”與“depends”有什麼區別?
核心 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
關係有何不同?FB && (ZORRO || PCI)``FB_CFB_FILLRECT``FB_CFB_COPYAREA``FB_CFB_IMAGEBLIT
更新
我注意到這
depend on
在編譯順序方面並沒有多大作用。例如。AppB 的成功建構取決於首先建構靜態連結的 LibB。在 Kconfig 中為 AppB設置
depends on LibB
不會強制首先建構 LibB。設置select LibB
會。
depends on
表示必須已經選擇符號 ( )=y
才能配置此選項。例如,必須選擇depends on FB && (ZORRO || PCI)
均值,並且 (&&)或 (||) 。對於類似的東西,這決定了是否會出現一個選項。FB``ZORRO``PCI``make menuconfig
select
積極設置符號。例如,select FB_CFB_FILLRECT
將意味著FB_CFB_FILLRECT=y
。這滿足了一些其他配置選項的潛在依賴性。請注意,核心文件不鼓勵將其用於“可見”符號(使用者可以選擇/取消選擇)或本身俱有依賴關係的符號,因為不會檢查這些符號。參考:https ://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt