makefile
格式:
依赖关系
(tab)生成目标的方法
变量定义:
定义一个变量(也常称为宏定义),只要在一行的开始定义这个变量(一般使用大写饿,而且放在makefile文件的顶部来定义),后面跟一个-号,=号后面即为设定的变量值。如果要应用该变量,用一个$符号来引用变量,变量名需要放在$后的()里。
变量的命名字可以包含字符、数字,下划线(可以是数字开头),但不应该含有“:”、“#”、“=”或是空字符(空格、回车等)
一些特殊的内部变量:
$@ :指代当前规则下的目标文件列表
$< :指代依赖文件列表中的第一个依赖文件
$^ : 指代依赖文件列表中所有依赖文件
$? : 指代依赖文件列表中新于对应目标文件的文件列表
`CFLAGS` 是一个常用的变量,在 Makefile 中用于指定编译器的编译选项。`-Wall` 和 `-Wextra` 是两个常见的编译选项。
- `-Wall` 选项表示开启所有常见的警告信息。编译器会检查代码中可能存在的潜在问题,并生成相应的警告信息。这有助于提高代码质量和发现潜在的错误。
- `-Wextra` 选项同样是开启额外的警告信息。它会启用一些附加的警告选项,常常检查一些可能被忽略的细节或不常见的问题。这有助于更全面地审查代码。
通过在 `CFLAGS` 变量中设置这两个选项,你告诉编译器在编译过程中启用所有常见的警告,并增加额外的警告检查。这样可以提高代码质量并减少潜在的错误。
除了 `-Wall` 和 `-Wextra`,还有许多其他编译选项可供使用,用于控制编译过程中的警告级别、优化等。可以根据需要从这些选项中选择适合的选项,以满足特定的编程需求和标准。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)