6sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/kbuild/kbuildmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/zh_TW/kbuild/kbuildmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/it_IT/kbuild/kbuildmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/ja_JP/kbuild/kbuildmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/ko_KR/kbuild/kbuildmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/pt_BR/kbuild/kbuildmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget!/translations/sp_SP/kbuild/kbuildmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhN/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/kbuild/kbuild.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(hDocumentation/kbuild/kbuild.rsth]h)}(hjh]hDocumentation/kbuild/kbuild.rst}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Translatorh]h Translator}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubj)}(h+慕冬亮 Dongliang Mu h]h)}(h*慕冬亮 Dongliang Mu h](h慕冬亮 Dongliang Mu <}(hj3hhhNhNubh reference)}(hdzm91@hust.edu.cnh]hdzm91@hust.edu.cn}(hj=hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:dzm91@hust.edu.cnuh1j;hj3ubh>}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj/ubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(hKbuildh]hKbuild}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjkhhhhhK ubjj)}(hhh](jo)}(h 输出文件h]h 输出文件}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj~hhhhhKubjj)}(hhh](jo)}(h modules.orderh]h modules.order}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(h该文件记录模块在 Makefile 中出现的顺序。modprobe 使用该文件来确定性 解析匹配多个模块的别名。h]h该文件记录模块在 Makefile 中出现的顺序。modprobe 使用该文件来确定性 解析匹配多个模块的别名。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] modules-orderah ]h"] modules.orderah$]h&]uh1jihj~hhhhhKubjj)}(hhh](jo)}(hmodules.builtinh]hmodules.builtin}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(h|该文件列出了所有内置到内核中的模块。modprobe 使用该文件来避免尝试加载 内置模块时出错。h]h|该文件列出了所有内置到内核中的模块。modprobe 使用该文件来避免尝试加载 内置模块时出错。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]modules-builtinah ]h"]modules.builtinah$]h&]uh1jihj~hhhhhKubjj)}(hhh](jo)}(hmodules.builtin.modinfoh]hmodules.builtin.modinfo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(h~该文件包含所有内置模块的 modinfo。与单独模块的 modinfo 不同,所有字段 都带有模块名称前缀。h]h~该文件包含所有内置模块的 modinfo。与单独模块的 modinfo 不同,所有字段 都带有模块名称前缀。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]modules-builtin-modinfoah ]h"]modules.builtin.modinfoah$]h&]uh1jihj~hhhhhKubjj)}(hhh](jo)}(hmodules.builtin.rangesh]hmodules.builtin.ranges}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhK ubh)}(h该文件包含所有内核内置模块的地址偏移范围(每个 ELF 节)。结合 System.map 文件,它可以用来将模块名称与符号关联起来。h]h该文件包含所有内核内置模块的地址偏移范围(每个 ELF 节)。结合 System.map 文件,它可以用来将模块名称与符号关联起来。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjhhubeh}(h]modules-builtin-rangesah ]h"]modules.builtin.rangesah$]h&]uh1jihj~hhhhhK ubeh}(h]id1ah ]h"] 输出文件ah$]h&]uh1jihjkhhhhhKubjj)}(hhh](jo)}(h 环境变量h]h 环境变量}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj3hhhhhK%ubjj)}(hhh](jo)}(h KCPPFLAGSh]h KCPPFLAGS}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjDhhhhhK(ubh)}(h在预处理时传递的额外选项。kbuild 进行所有预处理(包括构建 C 文件和汇编文件) 时,都会使用这些预处理选项。h]h在预处理时传递的额外选项。kbuild 进行所有预处理(包括构建 C 文件和汇编文件) 时,都会使用这些预处理选项。}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjDhhubeh}(h] kcppflagsah ]h"] kcppflagsah$]h&]uh1jihj3hhhhhK(ubjj)}(hhh](jo)}(hKAFLAGSh]hKAFLAGS}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjkhhhhhK-ubh)}(hN传递给汇编器的额外选项(适用于内置模块和外部模块)。h]hN传递给汇编器的额外选项(适用于内置模块和外部模块)。}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjkhhubeh}(h]kaflagsah ]h"]kaflagsah$]h&]uh1jihj3hhhhhK-ubjj)}(hhh](jo)}(h AFLAGS_MODULEh]h AFLAGS_MODULE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhK1ubh)}(h$外部模块的额外汇编选项。h]h$外部模块的额外汇编选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK2hjhhubeh}(h] aflags-moduleah ]h"] aflags_moduleah$]h&]uh1jihj3hhhhhK1ubjj)}(hhh](jo)}(h AFLAGS_KERNELh]h AFLAGS_KERNEL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhK5ubh)}(h$内置模块的额外汇编选项。h]h$内置模块的额外汇编选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjhhubeh}(h] aflags-kernelah ]h"] aflags_kernelah$]h&]uh1jihj3hhhhhK5ubjj)}(hhh](jo)}(hKCFLAGSh]hKCFLAGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhK9ubh)}(hQ传递给 C 编译器的额外选项(适用于内置模块和外部模块)。h]hQ传递给 C 编译器的额外选项(适用于内置模块和外部模块)。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK:hjhhubeh}(h]kcflagsah ]h"]kcflagsah$]h&]uh1jihj3hhhhhK9ubjj)}(hhh](jo)}(h KRUSTFLAGSh]h KRUSTFLAGS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhK=ubh)}(hT传递给 Rust 编译器的额外选项(适用于内置模块和外部模块)。h]hT传递给 Rust 编译器的额外选项(适用于内置模块和外部模块)。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK>hjhhubeh}(h] krustflagsah ]h"] krustflagsah$]h&]uh1jihj3hhhhhK=ubjj)}(hhh](jo)}(h CFLAGS_KERNELh]h CFLAGS_KERNEL}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj.hhhhhKAubh)}(h=在编译内置代码时,传递给 $(CC) 的额外选项。h]h=在编译内置代码时,传递给 $(CC) 的额外选项。}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhj.hhubeh}(h] cflags-kernelah ]h"] cflags_kernelah$]h&]uh1jihj3hhhhhKAubjj)}(hhh](jo)}(h CFLAGS_MODULEh]h CFLAGS_MODULE}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjUhhhhhKEubh)}(hF编译外部模块时,传递给 $(CC) 的额外模块特定选项。h]hF编译外部模块时,传递给 $(CC) 的额外模块特定选项。}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjUhhubeh}(h] cflags-moduleah ]h"] cflags_moduleah$]h&]uh1jihj3hhhhhKEubjj)}(hhh](jo)}(hRUSTFLAGS_KERNELh]hRUSTFLAGS_KERNEL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj|hhhhhKIubh)}(h@在编译内置代码时,传递给 $(RUSTC) 的额外选项。h]h@在编译内置代码时,传递给 $(RUSTC) 的额外选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj|hhubeh}(h]rustflags-kernelah ]h"]rustflags_kernelah$]h&]uh1jihj3hhhhhKIubjj)}(hhh](jo)}(hRUSTFLAGS_MODULEh]hRUSTFLAGS_MODULE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKMubh)}(h.用于 $(RUSTC) 的额外模块特定选项。h]h.用于 $(RUSTC) 的额外模块特定选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjhhubeh}(h]rustflags-moduleah ]h"]rustflags_moduleah$]h&]uh1jihj3hhhhhKMubjj)}(hhh](jo)}(hLDFLAGS_MODULEh]hLDFLAGS_MODULE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKQubh)}(h.用于 $(LD) 链接模块时的额外选项。h]h.用于 $(LD) 链接模块时的额外选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhjhhubeh}(h]ldflags-moduleah ]h"]ldflags_moduleah$]h&]uh1jihj3hhhhhKQubjj)}(hhh](jo)}(h HOSTCFLAGSh]h HOSTCFLAGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKUubh)}(h>在构建主机程序时传递给 $(HOSTCC) 的额外标志。h]h>在构建主机程序时传递给 $(HOSTCC) 的额外标志。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjhhubeh}(h] hostcflagsah ]h"] hostcflagsah$]h&]uh1jihj3hhhhhKUubjj)}(hhh](jo)}(h HOSTCXXFLAGSh]h HOSTCXXFLAGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKYubh)}(h?在构建主机程序时传递给 $(HOSTCXX) 的额外标志。h]h?在构建主机程序时传递给 $(HOSTCXX) 的额外标志。}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjhhubeh}(h] hostcxxflagsah ]h"] hostcxxflagsah$]h&]uh1jihj3hhhhhKYubjj)}(hhh](jo)}(h HOSTRUSTFLAGSh]h HOSTRUSTFLAGS}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj?hhhhhK]ubh)}(hA在构建主机程序时传递给 $(HOSTRUSTC) 的额外标志。h]hA在构建主机程序时传递给 $(HOSTRUSTC) 的额外标志。}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hj?hhubeh}(h] hostrustflagsah ]h"] hostrustflagsah$]h&]uh1jihj3hhhhhK]ubjj)}(hhh](jo)}(hPROCMACROLDFLAGSh]hPROCMACROLDFLAGS}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjfhhhhhKaubh)}(h用于链接 Rust 过程宏的标志。由于过程宏是由 rustc 在构建时加载的, 因此必须以与当前使用的 rustc 工具链兼容的方式进行链接。h]h用于链接 Rust 过程宏的标志。由于过程宏是由 rustc 在构建时加载的, 因此必须以与当前使用的 rustc 工具链兼容的方式进行链接。}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjfhhubh)}(ht例如,当 rustc 使用的 C 库与用户希望用于主机程序的 C 库不同时, 此设置会非常有用。h]ht例如,当 rustc 使用的 C 库与用户希望用于主机程序的 C 库不同时, 此设置会非常有用。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjfhhubh)}(hH如果未设置,则默认使用链接主机程序时传递的标志。h]hH如果未设置,则默认使用链接主机程序时传递的标志。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjfhhubeh}(h]procmacroldflagsah ]h"]procmacroldflagsah$]h&]uh1jihj3hhhhhKaubjj)}(hhh](jo)}(h HOSTLDFLAGSh]h HOSTLDFLAGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKkubh)}(h-链接主机程序时传递的额外选项。h]h-链接主机程序时传递的额外选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjhhubeh}(h] hostldflagsah ]h"] hostldflagsah$]h&]uh1jihj3hhhhhKkubjj)}(hhh](jo)}(h HOSTLDLIBSh]h HOSTLDLIBS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKoubh)}(h-在构建主机程序时链接的额外库。h]h-在构建主机程序时链接的额外库。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjhhubhtarget)}(h.. _zh_cn_userkbuildflags:h]h}(h]h ]h"]h$]h&]refidzh-cn-userkbuildflagsuh1jhK}hjhhhhubeh}(h] hostldlibsah ]h"] hostldlibsah$]h&]uh1jihj3hhhhhKoubjj)}(hhh](jo)}(h USERCFLAGSh]h USERCFLAGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKuubh)}(hC用于 $(CC) 编译用户程序(userprogs)时的额外选项。h]hC用于 $(CC) 编译用户程序(userprogs)时的额外选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjhhubeh}(h]( usercflagsjeh ]h"]( usercflagszh_cn_userkbuildflagseh$]h&]uh1jihj3hhhhhKuexpect_referenced_by_name}j*jsexpect_referenced_by_id}jjsubjj)}(hhh](jo)}(h USERLDFLAGSh]h USERLDFLAGS}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj1hhhhhKyubh)}(h用于 $(LD) 链接用户程序时的额外选项。用户程序(userprogs)是使用 CC 链接的, 因此 $(USERLDFLAGS) 应该根据需要包含 "-Wl," 前缀。h]h用于 $(LD) 链接用户程序时的额外选项。用户程序(userprogs)是使用 CC 链接的, 因此 $(USERLDFLAGS) 应该根据需要包含 “-Wl,” 前缀。}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhj1hhubeh}(h] userldflagsah ]h"] userldflagsah$]h&]uh1jihj3hhhhhKyubjj)}(hhh](jo)}(hKBUILD_KCONFIGh]hKBUILD_KCONFIG}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjXhhhhhK~ubh)}(hU将顶级 Kconfig 文件设置为此环境变量的值。默认名称为 "Kconfig"。h]hY将顶级 Kconfig 文件设置为此环境变量的值。默认名称为 “Kconfig”。}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjXhhubeh}(h]kbuild-kconfigah ]h"]kbuild_kconfigah$]h&]uh1jihj3hhhhhK~ubjj)}(hhh](jo)}(hKBUILD_VERBOSEh]hKBUILD_VERBOSE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(hG设置 kbuild 的详细程度。可以分配与 "V=..." 相同的值。h]hK设置 kbuild 的详细程度。可以分配与 “V=...” 相同的值。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h-有关完整列表,请参见 `make help`。h](h有关完整列表,请参见 }(hjhhhNhNubhtitle_reference)}(h `make help`h]h make help}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h*设置 "V=..." 优先于 KBUILD_VERBOSE。h]h.设置 “V=...” 优先于 KBUILD_VERBOSE。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]kbuild-verboseah ]h"]kbuild_verboseah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(h KBUILD_EXTMODh]h KBUILD_EXTMOD}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(h?在构建外部模块时设置内核源代码的搜索目录。h]h?在构建外部模块时设置内核源代码的搜索目录。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h)设置 "M=..." 优先于 KBUILD_EXTMOD。h]h-设置 “M=...” 优先于 KBUILD_EXTMOD。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] kbuild-extmodah ]h"] kbuild_extmodah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(h KBUILD_OUTPUTh]h KBUILD_OUTPUT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhKubh)}(h$指定内核构建的输出目录。h]h$指定内核构建的输出目录。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h在单独的构建目录中为预构建内核构建外部模块时,这个变量也可以指向内核输出目录。请注意, 这并不指定外部模块本身的输出目录(使用 KBUILD_EXTMOD_OUTPUT 来达到这个目的)。h]h在单独的构建目录中为预构建内核构建外部模块时,这个变量也可以指向内核输出目录。请注意, 这并不指定外部模块本身的输出目录(使用 KBUILD_EXTMOD_OUTPUT 来达到这个目的)。}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h-输出目录也可以使用 "O=..." 指定。h]h1输出目录也可以使用 “O=...” 指定。}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h)设置 "O=..." 优先于 KBUILD_OUTPUT。h]h-设置 “O=...” 优先于 KBUILD_OUTPUT。}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h] kbuild-outputah ]h"] kbuild_outputah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hKBUILD_EXTMOD_OUTPUTh]hKBUILD_EXTMOD_OUTPUT}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj\hhhhhKubh)}(h!指定外部模块的输出目录h]h!指定外部模块的输出目录}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj\hhubh)}(h/设置 "MO=..." 优先于 KBUILD_EXTMOD_OUTPUT.h]h3设置 “MO=...” 优先于 KBUILD_EXTMOD_OUTPUT.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj\hhubeh}(h]kbuild-extmod-outputah ]h"]kbuild_extmod_outputah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hKBUILD_EXTRA_WARNh]hKBUILD_EXTRA_WARN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(h`指定额外的构建检查。也可以通过在命令行传递 "W=..." 来设置相同的值。h]hd指定额外的构建检查。也可以通过在命令行传递 “W=...” 来设置相同的值。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h1请参阅 `make help` 了解支持的值列表。h](h 请参阅 }(hjhhhNhNubj)}(h `make help`h]h make help}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh 了解支持的值列表。}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h-设置 "W=..." 优先于 KBUILD_EXTRA_WARN。h]h1设置 “W=...” 优先于 KBUILD_EXTRA_WARN。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]kbuild-extra-warnah ]h"]kbuild_extra_warnah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hKBUILD_DEBARCHh]hKBUILD_DEBARCH}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(hX 对于 deb-pkg 目标,允许覆盖 deb-pkg 部署的正常启发式方法。通常 deb-pkg 尝试根据 UTS_MACHINE 变量(在某些架构中还包括内核配置)来猜测正确的架构。KBUILD_DEBARCH 的值假定(不检查)为有效的 Debian 架构。h]hX 对于 deb-pkg 目标,允许覆盖 deb-pkg 部署的正常启发式方法。通常 deb-pkg 尝试根据 UTS_MACHINE 变量(在某些架构中还包括内核配置)来猜测正确的架构。KBUILD_DEBARCH 的值假定(不检查)为有效的 Debian 架构。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]kbuild-debarchah ]h"]kbuild_debarchah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(h KDOCFLAGSh]h KDOCFLAGS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhKubh)}(h指定在构建过程中用于 kernel-doc 检查的额外(警告/错误)标志,查看 tools/docs/kernel-doc 了解支持的标志。请注意,这目前不适用于文档构建。h]h指定在构建过程中用于 kernel-doc 检查的额外(警告/错误)标志,查看 tools/docs/kernel-doc 了解支持的标志。请注意,这目前不适用于文档构建。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h] kdocflagsah ]h"] kdocflagsah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hARCHh]hARCH}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj4hhhhhKubh)}(h$设置 ARCH 为要构建的架构。h]h$设置 ARCH 为要构建的架构。}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4hhubh)}(hU在大多数情况下,架构的名称与 arch/ 目录中的子目录名称相同。h]hU在大多数情况下,架构的名称与 arch/ 目录中的子目录名称相同。}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4hhubh)}(h2但某些架构(如 x86 和 sparc)有别名。h]h2但某些架构(如 x86 和 sparc)有别名。}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4hhubh bullet_list)}(hhh](h list_item)}(h.x86: i386 表示 32 位,x86_64 表示 64 位h]h)}(hjxh]h.x86: i386 表示 32 位,x86_64 表示 64 位}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjvubah}(h]h ]h"]h$]h&]uh1jthjqhhhhhNubju)}(hparisc: parisc64 表示 64 位h]h)}(hjh]hparisc: parisc64 表示 64 位}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jthjqhhhhhNubju)}(h5sparc: sparc32 表示 32 位,sparc64 表示 64 位 h]h)}(h4sparc: sparc32 表示 32 位,sparc64 表示 64 位h]h4sparc: sparc32 表示 32 位,sparc64 表示 64 位}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jthjqhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1johhhKhj4hhubeh}(h]archah ]h"]archah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(h CROSS_COMPILEh]h CROSS_COMPILE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(ho指定 binutils 文件名的可选固定部分。CROSS_COMPILE 可以是文件名的一部分或完整路径。h]ho指定 binutils 文件名的可选固定部分。CROSS_COMPILE 可以是文件名的一部分或完整路径。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h6在某些设置中,CROSS_COMPILE 也用于 ccache。h]h6在某些设置中,CROSS_COMPILE 也用于 ccache。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h] cross-compileah ]h"] cross_compileah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hCFh]hCF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjhhhhhKubh)}(h 用于 sparse 的额外选项。h]h 用于 sparse 的额外选项。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h,CF 通常在命令行中如下所示使用::h]h+CF 通常在命令行中如下所示使用:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh literal_block)}(hmake CF=-Wbitwise C=2h]hmake CF=-Wbitwise C=2}hj0sbah}(h]h ]h"]h$]h&]hhuh1j.hhhKhjhhubeh}(h]cfah ]h"]cfah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(h INSTALL_PATHh]h INSTALL_PATH}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjFhhhhhKubh)}(h}INSTALL_PATH 指定放置更新后的内核和系统映像的路径。默认值是 /boot,但你可以设置 为其他值。h]h}INSTALL_PATH 指定放置更新后的内核和系统映像的路径。默认值是 /boot,但你可以设置 为其他值。}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjFhhubeh}(h] install-pathah ]h"] install_pathah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(h INSTALLKERNELh]h INSTALLKERNEL}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjmhhhhhKubh)}(hT使用 "make install" 时调用的安装脚本。 默认名称是 "installkernel"。h]h\使用 “make install” 时调用的安装脚本。 默认名称是 “installkernel”。}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmhhubh)}(h'该脚本将会以以下参数调用:h]h'该脚本将会以以下参数调用:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmhhubh block_quote)}(h- $1 - 内核版本 - $2 - 内核映像文件 - $3 - 内核映射文件 - $4 - 默认安装路径(如果为空,则使用根目录) h]jp)}(hhh](ju)}(h$1 - 内核版本h]h)}(hjh]h$1 - 内核版本}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jthjubju)}(h$2 - 内核映像文件h]h)}(hjh]h$2 - 内核映像文件}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jthjubju)}(h$3 - 内核映射文件h]h)}(hjh]h$3 - 内核映射文件}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jthjubju)}(h?$4 - 默认安装路径(如果为空,则使用根目录) h]h)}(h>$4 - 默认安装路径(如果为空,则使用根目录)h]h>$4 - 默认安装路径(如果为空,则使用根目录)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jthjubeh}(h]h ]h"]h$]h&]jjuh1johhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjmhhubh)}(hK"make install" 的实现是架构特定的,可能与上述有所不同。h]hO“make install” 的实现是架构特定的,可能与上述有所不同。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmhhubh)}(hW提供 INSTALLKERNEL 以便在交叉编译内核时可以指定自定义安装程序。h]hW提供 INSTALLKERNEL 以便在交叉编译内核时可以指定自定义安装程序。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjmhhubeh}(h] installkernelah ]h"] installkernelah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hMODLIBh]hMODLIB}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj0 hhhhhKubh)}(h-指定模块的安装位置。 默认值为::h]h,指定模块的安装位置。 默认值为:}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj0 hhubj/)}(h0$(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)h]h0$(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)}hjO sbah}(h]h ]h"]h$]h&]hhuh1j.hhhKhj0 hhubh)}(h?该值可以被覆盖,在这种情况下将忽略默认值。h]h?该值可以被覆盖,在这种情况下将忽略默认值。}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj0 hhubeh}(h]modlibah ]h"]modlibah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hINSTALL_MOD_PATHh]hINSTALL_MOD_PATH}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjs hhhhhKubh)}(hINSTALL_MOD_PATH 指定了模块目录重定位时 MODLIB 的前缀,通常由构建根 (build roots)所需。它没有在 makefile 中定义,但如果需要,可以作为 参数传递给 make。h]hINSTALL_MOD_PATH 指定了模块目录重定位时 MODLIB 的前缀,通常由构建根 (build roots)所需。它没有在 makefile 中定义,但如果需要,可以作为 参数传递给 make。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjs hhubeh}(h]install-mod-pathah ]h"]install_mod_pathah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hINSTALL_MOD_STRIPh]hINSTALL_MOD_STRIP}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhKubh)}(h如果 INSTALL_MOD_STRIP 被定义,内核模块在安装后会被剥离。如果 INSTALL_MOD_STRIP 的值为 '1',则会使用默认选项 --strip-debug。否则, INSTALL_MOD_STRIP 的值将作为 strip 命令的选项。h]h如果 INSTALL_MOD_STRIP 被定义,内核模块在安装后会被剥离。如果 INSTALL_MOD_STRIP 的值为 ‘1’,则会使用默认选项 --strip-debug。否则, INSTALL_MOD_STRIP 的值将作为 strip 命令的选项。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]install-mod-stripah ]h"]install_mod_stripah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hINSTALL_HDR_PATHh]hINSTALL_HDR_PATH}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhKubh)}(h_INSTALL_HDR_PATH 指定了执行 "make headers_*" 时,用户空间头文件的安装位置。h]hcINSTALL_HDR_PATH 指定了执行 “make headers_*” 时,用户空间头文件的安装位置。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h默认值为::h]h 默认值为:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj/)}(h$(objtree)/usrh]h$(objtree)/usr}hj sbah}(h]h ]h"]h$]h&]hhuh1j.hhhKhj hhubh)}(hl$(objtree) 是保存输出文件的目录。 输出目录通常使用命令行中的 "O=..." 进行设置。h]hp$(objtree) 是保存输出文件的目录。 输出目录通常使用命令行中的 “O=...” 进行设置。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(h?该值可以被覆盖,在这种情况下将忽略默认值。h]h?该值可以被覆盖,在这种情况下将忽略默认值。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]install-hdr-pathah ]h"]install_hdr_pathah$]h&]uh1jihj3hhhhhKubjj)}(hhh](jo)}(hINSTALL_DTBS_PATHh]hINSTALL_DTBS_PATH}(hj# hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhMubh)}(hINSTALL_DTBS_PATH 指定了设备树二进制文件的安装位置,通常由构建根(build roots)所需。 它没有在 makefile 中定义,但如果需要,可以作为参数传递给 make。h]hINSTALL_DTBS_PATH 指定了设备树二进制文件的安装位置,通常由构建根(build roots)所需。 它没有在 makefile 中定义,但如果需要,可以作为参数传递给 make。}(hj1 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]install-dtbs-pathah ]h"]install_dtbs_pathah$]h&]uh1jihj3hhhhhMubjj)}(hhh](jo)}(hKBUILD_ABS_SRCTREEh]hKBUILD_ABS_SRCTREE}(hjJ hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhjG hhhhhM ubh)}(hKbuild 在可能的情况下使用相对路径指向源代码树。例如,在源代码树中构建时,源代码树路径是 '.'。h]hKbuild 在可能的情况下使用相对路径指向源代码树。例如,在源代码树中构建时,源代码树路径是 ‘.’。}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjG hhubh)}(h设置该标志请求 Kbuild 使用源代码树的绝对路径。 在某些情况下这是有用的,例如在生成带有绝对路径条目的标签文件时等。h]h设置该标志请求 Kbuild 使用源代码树的绝对路径。 在某些情况下这是有用的,例如在生成带有绝对路径条目的标签文件时等。}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjG hhubeh}(h]kbuild-abs-srctreeah ]h"]kbuild_abs_srctreeah$]h&]uh1jihj3hhhhhM ubjj)}(hhh](jo)}(hKBUILD_SIGN_PINh]hKBUILD_SIGN_PIN}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj| hhhhhMubh)}(hz当签署内核模块时,如果私钥需要密码或 PIN,此变量允许将密码或 PIN 传递给 sign-file 工具。h]hz当签署内核模块时,如果私钥需要密码或 PIN,此变量允许将密码或 PIN 传递给 sign-file 工具。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj| hhubeh}(h]kbuild-sign-pinah ]h"]kbuild_sign_pinah$]h&]uh1jihj3hhhhhMubjj)}(hhh](jo)}(hKBUILD_MODPOST_WARNh]hKBUILD_MODPOST_WARN}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhMubh)}(hKBUILD_MODPOST_WARN 可以设置为在最终模块链接阶段出现未定义符号时避免错误。它将这些错误 转为警告。h]hKBUILD_MODPOST_WARN 可以设置为在最终模块链接阶段出现未定义符号时避免错误。它将这些错误 转为警告。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]kbuild-modpost-warnah ]h"]kbuild_modpost_warnah$]h&]uh1jihj3hhhhhMubjj)}(hhh](jo)}(hKBUILD_MODPOST_NOFINALh]hKBUILD_MODPOST_NOFINAL}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhMubh)}(hkKBUILD_MODPOST_NOFINAL 可以设置为跳过模块的最终链接。这仅在加速编译测试时有用。h]hkKBUILD_MODPOST_NOFINAL 可以设置为跳过模块的最终链接。这仅在加速编译测试时有用。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubeh}(h]kbuild-modpost-nofinalah ]h"]kbuild_modpost_nofinalah$]h&]uh1jihj3hhhhhMubjj)}(hhh](jo)}(hKBUILD_EXTRA_SYMBOLSh]hKBUILD_EXTRA_SYMBOLS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhMubh)}(h?用于依赖其他模块符号的模块。详见 modules.rst。h]h?用于依赖其他模块符号的模块。详见 modules.rst。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj hhubeh}(h]kbuild-extra-symbolsah ]h"]kbuild_extra_symbolsah$]h&]uh1jihj3hhhhhMubjj)}(hhh](jo)}(hALLSOURCE_ARCHSh]hALLSOURCE_ARCHS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhM#ubh)}(hn对于 tags/TAGS/cscope 目标,可以指定包含在数据库中的多个架构,用空格分隔。例如::h]hm对于 tags/TAGS/cscope 目标,可以指定包含在数据库中的多个架构,用空格分隔。例如:}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM$hj hhubj/)}(h*$ make ALLSOURCE_ARCHS="x86 mips arm" tagsh]h*$ make ALLSOURCE_ARCHS="x86 mips arm" tags}hj7 sbah}(h]h ]h"]h$]h&]hhuh1j.hhhM&hj hhubh)}(h<要获取所有可用架构,也可以指定 all。例如::h]h;要获取所有可用架构,也可以指定 all。例如:}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hj hhubj/)}(h$ make ALLSOURCE_ARCHS=all tagsh]h$ make ALLSOURCE_ARCHS=all tags}hjS sbah}(h]h ]h"]h$]h&]hhuh1j.hhhM*hj hhubeh}(h]allsource-archsah ]h"]allsource_archsah$]h&]uh1jihj3hhhhhM#ubjj)}(hhh](jo)}(h IGNORE_DIRSh]h IGNORE_DIRS}(hjl hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhji hhhhhM-ubh)}(hk对于 tags/TAGS/cscope 目标,可以选择不包含在数据库中的目录,用空格分隔。例如::h]hj对于 tags/TAGS/cscope 目标,可以选择不包含在数据库中的目录,用空格分隔。例如:}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM.hji hhubj/)}(h8$ make IGNORE_DIRS="drivers/gpu/drm/radeon tools" cscopeh]h8$ make IGNORE_DIRS="drivers/gpu/drm/radeon tools" cscope}hj sbah}(h]h ]h"]h$]h&]hhuh1j.hhhM0hji hhubeh}(h] ignore-dirsah ]h"] ignore_dirsah$]h&]uh1jihj3hhhhhM-ubjj)}(hhh](jo)}(hKBUILD_BUILD_TIMESTAMPh]hKBUILD_BUILD_TIMESTAMP}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhM3ubh)}(h将该环境变量设置为日期字符串,可以覆盖在 UTS_VERSION 定义中使用的时间戳 (运行内核时的 uname -v) 。该值必须是一个可以传递给 date -d 的字符串。例如::h]h将该环境变量设置为日期字符串,可以覆盖在 UTS_VERSION 定义中使用的时间戳 (运行内核时的 uname -v) 。该值必须是一个可以传递给 date -d 的字符串。例如:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM4hj hhubj/)}(h<$ KBUILD_BUILD_TIMESTAMP="Mon Oct 13 00:00:00 UTC 2025" makeh]h<$ KBUILD_BUILD_TIMESTAMP="Mon Oct 13 00:00:00 UTC 2025" make}hj sbah}(h]h ]h"]h$]h&]hhuh1j.hhhM7hj hhubh)}(hX:默认值是内核构建某个时刻的 date 命令输出。如果提供该时戳,它还用于任何 initramfs 归 档文件中的 mtime 字段。 Initramfs mtimes 是 32 位的,因此早于 Unix 纪元 1970 年,或 晚于协调世界时 (UTC) 2106 年 2 月 7 日 6 时 28 分 15 秒的日期是无效的。h]hX:默认值是内核构建某个时刻的 date 命令输出。如果提供该时戳,它还用于任何 initramfs 归 档文件中的 mtime 字段。 Initramfs mtimes 是 32 位的,因此早于 Unix 纪元 1970 年,或 晚于协调世界时 (UTC) 2106 年 2 月 7 日 6 时 28 分 15 秒的日期是无效的。}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM9hj hhubeh}(h]kbuild-build-timestampah ]h"]kbuild_build_timestampah$]h&]uh1jihj3hhhhhM3ubjj)}(hhh](jo)}(h$KBUILD_BUILD_USER, KBUILD_BUILD_HOSTh]h$KBUILD_BUILD_USER, KBUILD_BUILD_HOST}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhM>ubh)}(h这两个变量允许覆盖启动时显示的 user@host 字符串以及 /proc/version 中的信息。 默认值分别是 whoami 和 host 命令的输出。h](h.这两个变量允许覆盖启动时显示的 }(hj hhhNhNubj<)}(h user@hosth]h user@host}(hj hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:user@hostuh1j;hj ubhd 字符串以及 /proc/version 中的信息。 默认值分别是 whoami 和 host 命令的输出。}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM?hj hhubeh}(h]#kbuild-build-user-kbuild-build-hostah ]h"]$kbuild_build_user, kbuild_build_hostah$]h&]uh1jihj3hhhhhM>ubjj)}(hhh](jo)}(hLLVMh]hLLVM}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jnhj hhhhhMCubh)}(hw如果该变量设置为 1,Kbuild 将使用 Clang 和 LLVM 工具,而不是 GCC 和 GNU binutils 来构建内核。h]hw如果该变量设置为 1,Kbuild 将使用 Clang 和 LLVM 工具,而不是 GCC 和 GNU binutils 来构建内核。}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMDhj hhubeh}(h]llvmah ]h"]llvmah$]h&]uh1jihj3hhhhhMCubeh}(h]id2ah ]h"] 环境变量ah$]h&]uh1jihjkhhhhhK%ubeh}(h]kbuildah ]h"]kbuildah$]h&]uh1jihhhhhhhK ubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jnN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjv error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}j]jasnameids}(jP jM j0j-jjjjjjj(j%jH jE jhjejjjjjjjjj+j(jRjOjyjvjjjjjjjjj<j9jcj`jjjjjjj*jj)j&jUjRj|jyjjjjjYjVjjjjj jj1j.jjjjjCj@jjjgj- j* jp jm j j j j j j jD jA jy jv j j j j j j j j jf jc j j j j j j j@ j= u nametypes}(jP j0jjjj(jH jhjjjjj+jRjyjjjjj<jcjjjj*j)jUj|jjjYjjj j1jjjCjjj- jp j j j jD jy j j j j jf j j j j@ uh}(jM jkj-j~jjjjjjj%jjE j3jejDjjkjjjjjjj(jjOj.jvjUjj|jjjjjjj9jj`j?jjfjjjjjjj&jjRj1jyjXjjjjjVj jj\jjjjj.j jj4jjj@jjgjFj* jmjm j0 j js j j j j jA j jv jG j j| j j j j j j jc j j ji j j j j j= j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j KsRparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h;Hyperlink target "zh-cn-userkbuildflags" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehnjlineK}uh1j uba transformerN include_log]2Documentation/translations/zh_CN/kbuild/kbuild.rst(NNNNta decorationNhhub.