
Makefile
文章平均质量分 72
昊虹AI笔记
认真记录技术笔记,让记录产生价值!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Makefile示例积累
参数用来指定输出文件的文件名。中已经说得很清楚了。原创 2025-02-10 12:07:46 · 320 阅读 · 0 评论 -
交叉编译Linux驱动程序和测试程序的Makefile文件解读
上面Makefile文件的第一行显示,KERN_DIR代表已经配置、编译好的Linux源码的根目录,那么问题来了,怎么样配置、编译Linux的源码呢?将当前目录(模块源码目录)传递给内核源码目录中的 Makefile,使得内核编译系统能够找到并编译该目录中的内核模块(即编译。的话这句话是先执行构建,再清除,本来我的目标就是要清除构建中产生的相关文件,我先去执行一次构建没有任何意义,所以应该去掉这里的。指定的目录( Linux 内核的源码目录),执行该目录下的 Makefile 中定义的规则。原创 2025-01-06 14:09:22 · 884 阅读 · 0 评论 -
Linux之运行于用户空间的应用程序的代码的Makefile文件书写【递归编译,带子目录的工程:有顶层Makefile、Makefile.build和子目录中的Makefile】
根据前文叙述,CROSS_COMPILE的值为CPP的情况我们等会儿再说,我们先看下能展开的五个命令各自的作用。我把CROSS_COMPILE的值代入请分别说下这些命令各自的作用。下面是你提到的工具的功能介绍,基于我把CROSS_COMPILE的值代入请分别说下这些命令各自的作用。根据你提供的命令,下面是对STRIPOBJCOPY和OBJDUMP这条命令的作用是将ASLDCCCPPAR和NM。原创 2024-12-19 15:50:11 · 1278 阅读 · 0 评论 -
Makefile中使用include语句时要特别注意避免陷入无限循环的死循环中
Makefile中的include语句是把被包含的文件的内容包含当前文件中,类似于C语言中的include关键词。,根据Makefile的规则,Makefile会先解析内容,再执行,当它解析时,发现后面还有个同名的目标。,那我们只需要在Makefile.build中位于include命令前定义一个内容为空的目标。,再根据Makefile的规则,当有同名目标时,后面的覆盖前面的,所以它会去执行后面的目标。这个代码中,第一行就是我们想在Makefile.build中执行的目标。,这样就陷入了一种无限循环中。原创 2024-12-19 15:23:28 · 318 阅读 · 0 评论 -
读懂和编写Makefile需掌握的关键基础知识(常用符号、先解析再执行、make命令的第一个动作、规则的概念、目标及伪目标的相关概念、文件更新机制、几个重要的自动化变量等知识)
在 Makefile 中,同一个目标可以出现多次。后面的规则会扩展或覆盖前面的规则。__build: # 空规则 __build: touch examplemake 会最终使用最后的__build目标定义,即带有依赖的规则。关于上面命令中的touch的介绍见博文Makefile中遇到的touch命令是怎么回事儿?原创 2024-12-18 13:51:44 · 854 阅读 · 0 评论 -
Makefile中遇到的touch命令是怎么回事儿?
1 更新文件的访问时间和修改时间(时间戳):如果 example 文件已经存在,touch example 会更新该文件的访问时间(atime)和修改时间(mtime)为当前系统时间。不会改变文件的内容。touch 其实是是一个常用的 Linux/Unix 命令,其作用是 更新文件的时间戳,如果文件不存在,则创建一个空文件。2 创建新文件:如果 example 文件不存在,touch example 会创建一个空文件,文件大小为 0 字节。原创 2024-12-18 11:52:45 · 364 阅读 · 0 评论 -
有些Makefile文件以“.build”的后缀结尾是怎么回事儿?【Makefile.build文件是怎么回事儿?】
问:Makefile文件中,有些文件以.build的后缀结尾,这些文件本质上还是Makefile文件吧,也遵循Makefile的规则吧?发生冲突,比如我阅读的这个项目,顶层目录中就同时存在一个顶层Makefile文件和Makefile.build文件。后缀明确表明这些文件是为模块化构建服务的,而不是顶层管理的总体构建流程。,主要目的是为了突出其功能和用途。,它们遵循标准的 Makefile 语法和规则。后缀避免这种混淆,同时允许这些文件存放在与。后缀的文件本质上还是。,可能会与默认的顶层。原创 2024-12-18 11:19:32 · 542 阅读 · 0 评论 -
关于顶层Makefile文件中的语句`obj-y += display/`和子目录Makefile文件中的语句`obj-y += disp_manager.o`的理解
是告诉顶层 Makefile 或构建系统进入display子目录,递归构建该目录中的目标文件。是将文件(它通常由编译生成)加入到最终的构建目标中。核心概念obj-y是一个列表,它包含了所有参与最终构建的目标文件或子目录。是将子目录的目标文件列入编译列表,具体的文件由子目录中的Makefile决定。是明确指定一个目标文件(如.o文件),它会参与最终的构建过程。您的理解方式非常准确!原创 2024-12-17 21:04:57 · 438 阅读 · 0 评论 -
目标文件或可执行文件中的符号信息和调试信息是怎么回事儿?
符号信息:包括程序中的函数、变量的名称和地址。调试信息:包括源代码行号、变量类型、函数调用信息等,用于调试时映射源代码和机器代码。执行strip命令会去除这些信息,减少文件大小,但也使得调试变得更加困难,因为我们无法再查看源代码中的变量、函数名等符号。原创 2024-12-17 13:40:38 · 1002 阅读 · 0 评论