当前位置: 首页 > news >正文

佛山营销网站建设联系方式门户网站建设工作方案

佛山营销网站建设联系方式,门户网站建设工作方案,安康养老院收费价格表,基于jsp网站开发与实现Makefile学习笔记15|u-boot顶层Makefile01 希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长#xff0c;谢谢。 这里是目录 版本号信息 # SPDX-License-Identifier: GPL-2.0VERSION 2024 PATCHLEVEL 01 SUBLEVEL EXTRAVERSION -rc4 NAME 这里定义了u-bo…Makefile学习笔记15|u-boot顶层Makefile01 希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长谢谢。 这里是目录 版本号信息 # SPDX-License-Identifier: GPL-2.0VERSION 2024 PATCHLEVEL 01 SUBLEVEL EXTRAVERSION -rc4 NAME 这里定义了u-boot的版本信息。 make行为控制 # *DOCUMENTATION* # To see a list of typical targets execute make help # More info can be located in ./README # Comments in this file are targeted only to the developer, do not # expect to learn how to build the kernel reading this file.# Do not use makes built-in rules and variables # (this increases performance and avoids hard-to-debug behaviour) MAKEFLAGS -rR 前面的注释中说该文件中的注释仅针对开发人员不要指望通过阅读该文件来学习如何构建内核。那我们学一下Makefile不过分吧。 在 Makefile 中设置 MAKEFLAGS -rR 是控制 make 工具行为的一种方式。具体来说-r 和 -R 这两个标志的含义如下 -r或 --no-builtin-rules 这个选项会禁止 make 使用内置的隐含规则。隐含规则是 make 用来构建文件但未在 Makefile 中明确定义的一组默认规则。例如make 有一个隐含规则知道如何将 .c 文件编译成 .o 文件。禁用内置规则可以避免一些意外的构建行为并且可以在某些情况下提高 make 的执行性能。-R或 --no-builtin-variables 这个选项禁止 make 使用内置的变量集合这些变量可能会影响那些依赖隐含规则的命令。例如CFLAGS 是 make 中一个影响 C 编译器行为的内置变量。在 Makefile 中禁用内置变量是为了确保构建环境的清晰和可控性并避免 Makefile 行为的不确定性。 将这两个选项合在一起使用可以确保 Makefile 中的构建规则和变量不受 make 内置规则和变量的任何潜在干扰。这在大型、复杂的构建系统中可能很有用其中你希望对构建过程有完全的控制同时减少构建过程的不必要干预和潜在的性能影响。 确切的说MAKEFLAGS 是一个环境变量它允许你为 make 设置多个启动选项。在Makefile文件中通过 MAKEFLAGS 变量追加 -rR 选项可以使这些选项在调用 make 时自动应用于当前构建。 在你自己的项目中使用时请确保你完全理解了禁止这些内置规则和变量的含义以及它们对你的构建系统可能产生的影响。如果你依赖了默认的规则或变量禁用它们可能会导致构建失败因此在某些项目中可能需要保留这些内置规则和变量。 确定目标架构 # Determine target architecture for the sandbox include include/host_arch.h ifeq (, $(CROSS_COMPILE))MK_ARCH${shell uname -m} elseMK_ARCH${shell echo $(CROSS_COMPILE) | sed -n s/^[[:space:]]*\([^\/]*\/\)*\([^-]*\)-[^[:space:]]*/\2/p} endif unexport HOST_ARCH ifeq (x86_64, $(MK_ARCH))export HOST_ARCH$(HOST_ARCH_X86_64) else ifneq (,$(findstring $(MK_ARCH), i386 i486 i586 i686))export HOST_ARCH$(HOST_ARCH_X86) else ifneq (,$(findstring $(MK_ARCH), aarch64 armv8l))export HOST_ARCH$(HOST_ARCH_AARCH64) else ifneq (,$(findstring $(MK_ARCH), arm armv7 armv7a armv7l))export HOST_ARCH$(HOST_ARCH_ARM) else ifeq (riscv32, $(MK_ARCH))export HOST_ARCH$(HOST_ARCH_RISCV32) else ifeq (riscv64, $(MK_ARCH))export HOST_ARCH$(HOST_ARCH_RISCV64) endif undefine MK_ARCH在交叉编译环境中CROSS_COMPILE 是一个常用的变量它指定了编译器的前缀使得我们能够为不同于编译宿主机的目标架构构建软件。这在嵌入式系统开发中很常见因为编译的代码需要在如 ARM、MIPS 或 AVR 这样的架构上运行而开发者通常在 x86 或 x86-64 架构的机器上进行开发。 例如如果你的开发系统是基于 x86 架构的而你的目标系统是基于 ARM 架构的那么你需要使用 ARM 架构的交叉编译器来编译你的代码。这样生成的可执行文件才能在 ARM 目标机上运行。 CROSS_COMPILE 变量通常用于 Makefile 中。它是编译器命令的前缀所有必要的工具如编译器 gcc、链接器 ld、汇编器 as 和其他工具都使用这个前缀。 例如如果 ARM 交叉编译器的命令是 arm-none-eabi-gcc那么 CROSS_COMPILE 应该设置为 arm-none-eabi-以此类推。下面是 CROSS_COMPILE 在Makefile中的常见用法 # 设置交叉编译器前缀 CROSS_COMPILEarm-linux-gnueabihf-# 之后使用变量时 CC$(CROSS_COMPILE)gcc LD$(CROSS_COMPILE)ld AS$(CROSS_COMPILE)as# 其他编译规则和目标...字符集设置 # Avoid funny character set dependencies unexport LC_ALL LC_COLLATEC LC_NUMERICC export LC_COLLATE LC_NUMERIC# Avoid interference with shell env settings unexport GREP_OPTIONS这段脚本通常出现在 Unix-like 系统的 Makefile 中它的目的是确保 Makefile 中的操作对于本地化设置及字符集是独立的。本地化设置可能会影响字符串的比较排序和数字的表示方式。为了避免这些依赖通常在 Makefile 或构建脚本中设置特定的环境变量使得这些操作更可预测具有一致性避免构建过程中由于不同的本地化设置引起的问题。 LC_ALL 是一个强制性的环境变量用于设置 C 库的本地化配置它会覆盖所有其他本地化设置包括 LC_COLLATE, LC_NUMERIC, 以及其他 LC_* 类型的变量。LC_COLLATE 定义了字符串比较和排序的规则。设置为 C 可确保文件名和字符串的比较是基于字节值进行的而不受根据地区的字母顺序影响。LC_NUMERIC 影响数字的格式化方式比如数字分隔符。例如在某些本地化设置中小数点用逗号 ‘,’ 表示。设置为 C 可以确保小数点始终使用点 ‘.’以符合大多数编程语言和脚本的期望。 当我们确保 LC_COLLATE 和 LC_NUMERIC 是 C或 POSIX它们是等效的时您可以让构建过程在所有环境中提供一致的行为避免由于不同的语言或地区设置而造成的问题。这可以提高 Makefile 的可移植性和健壮性。 对于最后一行当在脚本或者 Makefile 中使用 grep不同用户的不同 GREP_OPTIONS 设置可能会结果不一致尤其是当这个脚本依赖于 grep 输出特定格式时。为了确保 grep 的行为是预期并且一致的开发者通常会选择清除 GREP_OPTIONS 环境变量。 美化输出 # Beautify output # --------------------------------------------------------------------------- # # Normally, we echo the whole command before executing it. By making # that echo $($(quiet)$(cmd)), we now have the possibility to set # $(quiet) to choose other forms of output instead, e.g. # # quiet_cmd_cc_o_c Compiling $(RELDIR)/$ # cmd_cc_o_c $(CC) $(c_flags) -c -o $ $ # # If $(quiet) is empty, the whole command will be printed. # If it is set to quiet_, only the short version will be printed. # If it is set to silent_, nothing will be printed at all, since # the variable $(silent_cmd_cc_o_c) doesnt exist. # # A simple variant is to prefix commands with $(Q) - thats useful # for commands that shall be hidden in non-verbose mode. # # $(Q)ln $ : # # If KBUILD_VERBOSE equals 0 then the above command will be hidden. # If KBUILD_VERBOSE equals 1 then the above command is displayed. # # To put more focus on warnings, be less verbose as default # Use make V1 to see the full commandsifeq ($(origin V), command line)KBUILD_VERBOSE $(V) endif ifndef KBUILD_VERBOSEKBUILD_VERBOSE 0 endififeq ($(KBUILD_VERBOSE),1)quiet Q elsequietquiet_Q endif# If the user is running make -s (silent mode), suppress echoing of # commandsifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4 ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)quietsilent_ endif else # make-3.8x ifneq ($(filter s% -s%,$(MAKEFLAGS)),)quietsilent_ endif endifexport quiet Q KBUILD_VERBOSE它提供了一种灵活的机制用于控制命令执行时输出信息的格式。这种机制让构建系统如内核能够以不同的详细级别显示或隐藏命令的输出。 设置输出参数 命令行变量 V允许你通过在 make 命令后添加 V1 参数来开启详细模式例如make V1。设置 KBUILD_VERBOSE根据 V 变量的值设置 KBUILD_VERBOSE用于决定输出模式是详细 (1) 还是简洁 (0)。定义 quiet 和 Q利用 KBUILD_VERBOSE 变量这段设置定义了两个控制输出的变量 quiet 和 Q。当 KBUILD_VERBOSE 是 1详细模式Q 是空字符串这意味着所有命令都会显示。如果是 0简洁模式Q 被设置为 这表示 Makefile 中以 $(Q) 开头的命令将不显示。 控制命令输出 命令输出前缀使用 $(quiet) 作为前缀可以使得 make 在执行命令时不显示整个命令而是显示一个简短的描述例如“Compiling foo/bar.o”。静默模式检测根据 Make 的版本脚本检查 MAKEFLAGS 是否包含静默模式标志 s。如果用户使用了 make -s则所有命令执行将不输出任何信息因为 quiet 变量将被设置为 silent_。 这个复杂的控制机制最终目的是为开发者提供一个在需要时能够详细打印每一个命令执行的构建过程有助于调试而在常规构建时则显示简化或没有输出。这使得构建输出更易于阅读并能在需要解决问题时提供足够的信息。 都看到这里了可以给个点赞或者评论吗达瓦里希(^)ゞ
http://www.zqtcl.cn/news/586372/

相关文章:

  • 商城网站开发报价单献县做网站价格
  • 做网站和推广需要多少钱诚信企业查询系统
  • c 2015 做网站网站设计技术有哪些?
  • 安丘网站开发主播网站建立
  • 档案网站的建设wordpress英文主题 汉化
  • 网站建设礼品南充网站建设工作室
  • 电子商务网站建设概念wordpress 扫码支付宝
  • 上海做网站谁好营销型网站框架图
  • 太仓企业网站建设价格wordpress自动同步插件
  • 微信网站是什么淄博周村网站建设哪家好
  • 廊坊网站建设价格网站建设维护的方案
  • 站长工具综合权重查询怎样做招聘网站
  • 广东新闻联播2020sem对seo的影响有哪些
  • 女装东莞网站建设在线设计签名免费网站
  • 在国外做黄皮网站违法么网站建设北京个人
  • 深圳南头高端网站建设安卓优化大师老版本
  • 宁海做网站wordpress邀请码注册功能
  • 重庆建设网站哪家好长沙待遇好的十大国企
  • 甘肃省建设厅查询网站黄骅港信息贴吧
  • 如何做网站的逻辑结构图如何快速做一个网站
  • 郑州虚拟货币网站开发千万不能 网站
  • 石家庄做网站汉狮网络企业标准网上备案网站
  • php网站开发权限管理广州白云区网站开发
  • 北京网站开发建设 58同城wordpress 无标题
  • 黑龙seo网站优化建设网站要学编程吗
  • 花都区水务建设管理中心官方网站怎么样才能搜索到自己做的网站
  • dedecms景区网站模板wordpress显示手动摘要
  • 备案网站免网上海网站建设机构
  • 模板建网站哪个品牌好网站制作排名
  • 网站开发咨询企业排名查询