1. 首页 > 数码 >

makefile注释 makefile注释怎么写

编写一个makefile文件主要包含哪些内容

3 关闭其他打开该文件的软件或者编辑器

一、Makefile里有什么?

makefile注释 makefile注释怎么写makefile注释 makefile注释怎么写


1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。

2、隐晦规则。由于我们的make有自动推导的功能,所以注意ifneq和($(KERNELRELEASE),)中间有个空格隐晦的规则可以让我们比较粗糙地简略地书写Makefile,这是由make所支持的。

3、变量的定义。在Makefile中我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。

4、文件指示。其包括了三个部分,一个是在一个Makefile中引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile中的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令。有关这一部分的内容,我会在后续的部分中讲述。

5、注释。Makefile中只有行注释,和UNIX的Shell脚本一样,其注释是用“#”字符,这个就像C/C++中的“//”一样。如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“\#”。

,还值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。

makefiel:1: 遗漏分隔符 。停止 是什么意思? 我的makefile如下:

makefile文件主要有以下五种组成部分。显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。

ifneq ($(makefile文件主要有以下五种组成部分。显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。KERNELRELEASE),)

在用户主目录下有个.vimrc,你可以把里面对vim的设置全部注释掉,之后删除makefile中以前的tab键 ,重新click tab键

obj-m:=hello.o

else

endif

$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules

clean:

makefile 文件的组成内容?

是不是没有把C库或者头文件包含进去啊

显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。

隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。

变量的定义: make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。这个文件非常小 你们老师分析模板给了很好分析了当makefile被执行时,其中的变量都会被展开到相应的引用位置上。

求一段Linux作系统源代码分析

一,源代码文件名Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。称

整体功能:如果调用的进程不是一个组的组长时,setsid创建一个新会话。调用进程将成为该新会话的组长,新进程组的组长,并且没有控制终端。调用进程的组id和会话id被设置成进程的PID,调用进程将成为新进程组合和新会话中的进程。

函数输入:pid-t,setsid

函数输出:调用进我也不懂程的会话标识符

函数功能:(就一个函数,所以就跟整体功能相同就行了)

makefile 文件介绍?

请尝文件指示:其包括三个部分,一个是在一个makefile中引用另一个makefile,就像C语言中的include一样。另一个是指根据某些情况指定makefile中的有效部分,就像C语言中的预编译tlif一样。还有就是定义一个多行的命令。试:

编译u-boot时printf未定义是什么意思?

三,程序流程图 (可以省略了)

修改include/configs/itop4412.h文件,在末尾添加#define DEBUG,然后用make命令编译uboot,但是编译不通过,报错:

注释: makefile 中支持行注释,这一点需要特别注意。makefile 中的注释和 shell脚本一样,其注释是用“#”字符。如果需要在 makefile中使用“#”字符,可以用‘\’对其进行转义。例如,“\#”表示一个‘#’字符。

undefined reference to `printf‘

解决办法:

(1)make menuconfig,选中SPL / TPL ---> Support generic libraries和Support common libraries

(2)修改scripts/Makefile.uncmd_spl文件,将CONFIG_DM_SERIAL=用#号注释掉。

然后修改include/config_uncmd_spl.h文件,将里面的#undef CONFIG_DM_SERIAL注释掉(注释必须用//,不能用//)。

再次编译uboot,就成功了。

注意一下生成的spl/u-boot-spl.bin大小,exynos4412芯片的BL2_SPL程序(uboot spl)的大小不允许超过14KB-4字节(14332字节)。

exynos4412的BL1程序(三星不开放源码的那段启动程序)只能把BL2_SPL程序(uboot的spl部分)到iRAM里面执行,iRAM里面是装不下完整的uboot程序的(BL2)。BL2_SPL的作用就是把完整版uboot(BL2)到DDR3内存里面,然后跳过去执行,这不属于BL1程序的任务。

c语言!!编译的时候出现这个提弹窗,makefile.win已经改变,是否重新从硬盘读取。这是什么

###如果你在m-net没有Linux账户,可以输入newuser建立一个 一、编写一个hello.c的源代码文档: $ mkdir ~/abc $ cd ~/abc $ touch hello.c $ vi hello.c # include "stdio.h" int main(int argc, char argv) { printf("Hello, GNU! "); return 0; } 二、 生成configure.scan并编辑为configure.in: $ autoscan → cp configure.scan configure.in→vi configure.in → ###原始的configure.in文档: # -- Autoconf -- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) ← AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) ← AC_CONFIG_SRCDIR([hello.c]) AC_CONFIG_HEADER([config.h]) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_OUTPUT ← ---------------------------------------------------------------------------------------------------------------------- ###修改后的configure.in文档: # -- Autoconf -- # Process this file with autoconf to produce a configure script. #AC_PREREQ(2.61) → ###使用aclocal19命令会报错: ###configure.in:4: error: Autoconf version 2.61 or higher is required ###configure.in:4: the top ll ###autom4te259: /usr/local/bin/gm4 failed with exit status: 63 ###aclocal19: autom4te259 failed with exit status: 63 ###将上面的代码注释掉即可排除错误 AC_INIT(hello.c) AC_CONFIG_SRCDIR([hello.c]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_FILES([Makefile]) AM_INIT_AUTOMAKE(hello, 1.0) # Checks for programs. AC_PROG_CC # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. AC_OUTPUT (Makefile) 三、 使用aclocal和autoconf生成aclocal.m4和configure文件: $ aclocal119 → autoconf →touch Makefile.am → # -- Makefile.am -- AUTOMAKE_OPTIONS= foreign bin_PROGRAMS= hello hello_SOURCES= hello.c 四、 使用autoheader $ autoheader → 五、 使用automake生成Makefile.in文件: $ automake19 --add-missing 六、 使用configure生成最终Makefile: $ ./configure --prefix=/home/XXX/hello → checking for gcc... gcc checking for C compiler default output file name... a.out checking wher the C compiler works... yes checking wher we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking wher we are using the GNU C compiler... yes checking wher gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed configure: creating ./config.status config.status: creating config.h ./configure: line 3448: Makefile: command not found ###configure出现错误,按提示修改configure文件: $ vi ./configure → ### 原始的configure文档内容: ### 3444 # Use , not &&, to oid exiting from the if with $? = 1, which ### 3445 # would make configure fail if this is the last instruction. ### 3446 $ac_cs_success { (exit 1); exit 1; } ### 3447 fi ### 3448 (Makefile) ← -------------------------------------------------------------------------------------------------------------------------- ###修改后的configure文档内容: ### 3448 # (Makefile) ### 将3448行的代码注释掉即可。 七、 最终make前用ls检查文件: $ ls → Makefile config.h configure.scan Makefile.am config.h.in depcomp Makefile.in config.log hello.c aclocal.m4 config.status install-sh autom4te.cache configure missing autoscan-2.61.log configure.in stamp-h1 八、 开始编译并运行测试: $ Make $ Make install $ ~/hello/bin/hello Hello, GNU! [XXXX@m-net ~/abc]$

文件被标记已经修改

makefile文件主要有以下五种组成部分。

1 关闭文件后重新

2 关闭编译器后重新打开项目

另外从照片可以看到 printf符号未引用错误,这是因为编译器未能争取配置

请指定正确的标准库路径、环境变量和编译器参数

将打开的makefile文件关掉,然后把打错的单词纠正一下

makefile 文件的组成内容?

注释: makefile 中支持行注释,这一点需要特别注意。makefile 中的注释和 shell脚本一样,其注释是用“#二,源代码功能描述”字符。如果需要在 makefile中使用“#”字符,可以用‘\’对其进行转义。例如,“\#”表示一个‘#’字符。makefile文件的文件名命名为makefile或者Makefile。因为在默认的情况下,make命令会在当前目录下按顺序找寻这两个文件进行解释。用户也可以为makefile文件自定义一个文件名,例如,Make.makefile,Make.admin等。

隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。

变量的定义: make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的引用位置上。

makefile文件都有哪五部分?

makefile文件主要有以下五种组成部分。显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。变量的定义: makmakefile文件的文件名命名为makefile或者Makefile。因为在默认的情况下,make命令会在当前目录下按顺序找寻这两个文件进行解释。用户也可以为makefile文件自定义一个文件名,例如,Make.makefile,Make.admin等。e工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的引用位置上。

隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。

变量的定义: make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的引用位置上。

makefile 文件详细组成部分?

文件指示:其包括三个部分,一个是在一个makefile中引用另一个makefile,就像C语言中的include一样。另一个是指根据某些情况指定makefile中的有效部分,就像C语言中的预编译tlif一样。还有就是定义一个多行的命令。

makefile文件主要有以下五种组成部分。显式规则:显式规则说明了生成一个或多个目标文件的方法和步骤。这是在编写makefile文件时明显指出的,包括要生成的文件、生成文件的依赖文件以及生成的命令等。隐式规则:由于make工具有自动推导的功能,所以在编写makefile文件的时候可以利用该规则,简略地书写makefile。再由 make 工具本身自动推导需要使用的规则。变量的定义: make工具支持变量的定义,这些变量往往都是字符串,因此makefile中的变量更像是C语言中的宏。当makefile被执行时,其中的变量都会被展开到相应的引用位置上。文件指示:其包括三个部分,一个是在一个makefile中引用另一个makefile,就像C语ifneq($(KERNELRELEASE),)言中的include一样。另一个是指根据某些情况指定makefile中的有效部分,就像C语言中的预编译tlif一样。还有就是定义一个多行的命令。注释: makefile 中支持行注释,这一点需要特别注意。makefile 中的注释和 shell脚本一样,其注释是用“#”字符。如果需要在 makefile中使用“#”字符,可以用‘\’对其进行转义。例如,“\#”表示一个‘#’字符。makefile文件的文件名命名为makefile或者Makefile。因为在默认的情况下,make命令会在当前目录下按顺序找寻这两个文件进行解释。用户也可以为makefile文件自定义一个文件名,例如,Make.makefile,Make.admin等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息