下面我们来创建一个SpringBoot项目完成单个、多个文件的上传。 本章目标 使用SpringBoot项目完成单个、多个文件的上传处理,并将上传的文件保存到指定目录下。...图1 我们下面配置application.properties文件支持JSP页面的访问,配置preffix以及suffix路径转发规则,如下图2所示: ?...多文件上传 上面单个文件已经是可以上传成功了,那么我们来讲解下多个文件上传。 修改JSP界面 我们对index.jsp做出简单的修改,在下面添加一个多文件上传的表单,如下图13所示: ?...图14 添加多个文件上传的方法如下图15所示: ? 图15 我们多个文件的配置也已经完成,下面我们重启下项目,测试多个文件上传功能。...总结 以上内容就是本章的全部讲解,本章主要讲解了SringBoot项目如何上传单个、多个文件到服务器端指定目录下,上传时修改限制上传文件容量大小,上传文件的命名规则等。
Makefile 在使用 make 之前,你必须在当前目录下添加一个 Makefile 文件,它描述了文件之间的依赖(输入输出)关系,并提供更新文件的 Shell 命令。...2.1 构成 简单的 Makefile 文件由若干如下格式的规则(rule)组成: target: prerequisites recipe target : 通常是程序生成(输出)的一个或多个文件名...prerequisites: 先决条件是用于生成 target 文件的输入文件或是完成 target 任务前需要先执行的任务 。一个 target 可以没有先决条件,也可以有一个或多个先决条件。...隐式规则 某些重新生成目标文件的方式非常常用。例如,使用 C 编译器 cc 从 .c 源文件编译生成 .o 目标文件。...比如,C 编译通常输入 .c 文件,输出 .o 文件。 因此,当看到文件名结尾符合这种组合时,make 将隐式规则应用于 C 编译。
的使用 我参考 Linux 内核的 Makefile 编写了一个通用的 Makefile,它可以用来编译应用程序: ① 支持多个目录、多层目录、多个文件; ② 支持给所有文件设置编译选项; ③...3.2 Makefile 规则 一个简单的 Makefile 文件包含一系列的“规则”,其样式如下: 目标(target)…: 依赖(prerequiries)… 命令(command) 目标...(3)(strip string) 去掉前导和结尾空格,并将中间的多个空格压缩为单个空格。 比如: (strip a b c ) 结果为a b c。...将 suffix(后缀) 的值附加在每一个独立文件名的后面,完成后将文件名串联起来,它们之间用单个空格隔开。...将 preffix(前缀) 的值附加在每一个独立文件名的前面,完成后将文件名串联起来,它们之间用单个空格隔开。
Makefile: 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作...Makefile编写 以下是本人自己比较喜欢用的Makefile的使用方式的总结,一般为单个项目产生单个可执行文件,一般是控制台程序或者opencv相关 简单的多文件的C/C++控制台程序 文件目录是...Makefile编写风格,因为没有特殊的中间文件操作,所以都是用的make的自动规则,下面解释上面Makefile内容,基本上可以分成4部分: 在此之前,先说明一下Makefile基本规则: 基本上按照以下模板...依赖(dependes): 依赖是用来产生目标(target)的目标文件。 命令(command):命令前面一定是Tab,不能是定格,也不能说多个空格。...三、声明依赖的目标文件生成 这部分是声明所有依赖的文件的生成方式,使用了make的默认生成规则,语法是 目标文件: 依赖的头文件和源文件 这部分对应的内容是 main.o : main.c stack.o
使用默认编译简化 无需详细说明编译单个C源文件的方法,因为make可以解决这些问题。如main.o,kdb.o等。...管道命令 对要调用的规则施加特定的顺序,而不必强制更新目标,使用管道命令。 当执行此条规则,则首先需要执行先决条件的规则。然而当先决条件存在,不论是否被更改,都属于满足条件。...替换通配符,如下的patsubst语法,实现了将所有通配符匹配到的.c文件替换为了.o文件。 %表示任意的意思。...当多个.d文件生成后,其中包含了各个依赖关系,使用include方法包括到文件中,如下包含了foo.d和bar.d。 其中的:.c=.d,将source中的.c替换为了对应的.d。...换行说明 转义符换行,左边为输入,右边为输出。其中第二部分的单双引号区别由bash控制而不是makefile。 ? 。。。。 ? ? 。。。。 ? ? 。。。。 ?
2、 汇编 汇编就是将.c文件转换为汇编文件。 3、 编译 将.c文件转换成的汇编文件转换成.o(object)的目标文件。...4.4、变量追加+= 与Qt中.pro文件中添加属性类似,C知识点。 ? 6、Makefile模式规则 在有多个.c文件需要生成.o文件时,可以通过模式规则将所有的.c文件变为对应的.o文件。...自动化变量将模式中所定义的一系列的文件自动的逐个取出,直到所有的符合模式的文件都取完,自动化变量只应该出现在规则的命令中。 ? ? 最终makefile变为: ?...7、Makefile伪目标 回想之前的Makefile规则格式: 目标:依赖文件。...在Makefile文件中,将clean声明为伪目标,就是在clean的上一行添加声明: .PHONY:clean 8、Makefile条件判断 Makefile也支持条件判断,条件关键字为
Makefile 文件中包含了一系列的规则来指导如何产生目标文件,这些规则包含目标、依赖和命令: 目标(Target):这通常是要生成的文件名,例如可执行文件或者对象文件。...依赖(Dependencies):这是生成目标所需的文件或目标。 命令(Commands):这些是生成目标时需要执行的命令。 Makefile 使用 GNU make 工具来执行文件中定义的规则。...Makefile 可以用来自动化固件的构建过程,包括编译、链接以及生成可直接烧录到硬件的二进制文件。 模块化构建:在复杂的嵌入式项目中,软件通常被分解成多个模块或库。...三、其他类似的链接工具 CMake: 用途:广泛应用于需要交叉编译的嵌入式项目。...特点:CMake 可以生成适用于多种编译器和平台的Makefile或其他构建文件,非常适合于需要在多个不同硬件平台上部署的嵌入式软件。
###二、Make的一般使用: 1、Makefile的基本构成: Makefile由规则构成,一条规则生成一个或多个目标文件,其格式如下: 目标文件列表 分隔符 依赖文件列表 [;命令] //[]中的内容可选...命令之间可以插入多个空行,但每行必须有Tab键,如果一行过长,可以在行末输入一个\,用反斜杠连接的行都被看成一行来处理,反斜杠和新行之间不能有空格。...2、Makefile文件的构成: 一个完整的makefile文件由5个部分构成:显式规则、隐含规则、变量、文件指示和注释。 显式规则:一条显式规则指名了目标文件、目标文件的依赖关系、命令。...文件指示:包括三个部分,一个类似于c语言中的include语句,可以将另一个makefile文件包含进来;二是根据情况指定makefile中的有效部分,就像c语言中的预编译#if一样;三是定义一个多行的命令...多个目标: 一个规则中可以有多个目标,这些目标有相同的依赖文件 搜索目录: 通常在一个大的项目中,会把头文件、源文件、库文件放在不同的目录下。当目录发生改变后,只需改变依赖文件的搜索目录。
Makefile实际上是一个文件的依赖关系,也就是说, target这一个或多个的目标文件依赖于dependency中的文件,其生成规则定义在命令command中。...一个makefile文件中可定义多个目标,利用make target命令可指定要编译的目标,如果不指定目标,则使用第一个目标。...2、Makefile的基本内容 Makefile一般包括包含:显式规则、变量定义、隐含规则、文件指示和注释等五个内容。 (1)显式规则:显式规则说明如何生成一个或多个的目标文件。...$@ ——表示规则中的目标文件集。在模式规则中,如果有多个目标,那么," $@ " 就是匹配于目标中模式定义的集合。 $% ——仅当目标是函数库文件中,表示规则中的目标成员名。...模式规则看起来非常类似于正则规则,但在目标名称的前面多了一个 % 号,同时可用来定义目标和依赖文件之间的关系,例如下面的模式规则定义了如何将任意一个 X.c 文件转换为 X.o 文件: %.c:%.o
# 一、Makefile简介 # 1、Makefile是什么 Makefile是一种用于自动化构建程序的工具,它提供了一系列规则来指定源代码文件之间的依赖关系,以及如何生成目标文件。...每个规则由一个目标文件、一个或多个依赖文件和一组命令组成,这些命令描述了如何从依赖文件生成目标文件。 Makefile的主要作用是简化或组织编译代码的过程,它可以帮助程序员自动化编译、链接和打包程序。...当我们在命令行中输入make命令时,Make会查找当前目录下是否存在名为Makefile或makefile的文件。...目标定义了生成的目标体,并指明生成目标体需要哪些依赖文件。 依赖(Dependency):依赖是指生成目标体所需的文件或另一个目标。它可以是一个或多个文件,也可以没有。...在规则的命令部分,$@将被替换为目标文件的名字。
利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,...当然,你的makefile中的第一个目标是由许多个目标组成,你可以指示make,让其完成你所指定的目标。...-I , –include-dir= 指定一个被包含makefile的搜索目标。可以使用多个“-I”参数来指定多个目录。...一旦依赖目标中的% 模式被确定,那么,make会被要求去匹配当前目录下所有的文件名,一旦找到,make就会规则下的命令,所以,在模式规则中,目标可能会是多个的,如果有模式匹配出多个目标,make就会产生所有的模式目标...下面是所有的自动化变量及其说明: •@ : 表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,@ 就是匹配于目标中模式定义的集合。 •% : 仅当目标是函数库文件中,表示规则中的目标成员名。
如果一个工程项目中,有成百上千个代码源文件,若其中一个或多个文件进过修改,make就需要能够自动识别更新了的代码,不需要像方法1一样逐个输入编译冗长的命令行,就可以完成最后的编译工作。...其次,需要注意Linux makefile(Makefile)文件的编写规范和方法: 1、需要由make工具创建目标体target,即通常的目标文件或可执行文件 2、声明并给出创建的目标体所依赖的文件(...生成规则目标所需要的文件名列表,通常是一个目标依赖于一个或多个文件。 command:规则的命令。make程序所执行的的动作,可以为shell命令或者在shell下执行的程序。...评析: 方法2利用makefile文件,进行项目所有文件的编译管理,可保存、易修改,且编译执行效率高,大大减轻了每次编译的工作量 方法2,仅仅是最为初级的makefile项目管理格式,现在我们将逐步对其进行优化...makefile的缺省规则如下: ..c.o: gcc -c $< 这个规则表示,所有的 *.o 目标文件都是依赖于相应的 *.c 源文件的, 例如 main.o 依赖于 main.c 。
规则中也可以没有命令,仅仅包含目标和目标依赖,仅仅用来描述一种依赖关系,但一个规则中一定要有一个目标。 默认目标 一个Makefile文件里通常会有多个目标,一般会选择第一个作为默认目标。...多目标 一个规则中也可以有多个目标,多个目标具有相同的生成命令和依赖文件。...如一个目标文件%.o都是由其对应的源文件%.c编译生成的,生成命令也是相同的: %.o: %.c gcc -o %.o %.c 多规则目标 多个规则可能是同一个目标,make在解析Makefile...头文件依赖 其中一个解决方法是将头文件module.h添加到规则的目标依赖列表中: //Makefile .PHONY: clean a.out: hello.o module.o module.h...自动生成头文件依赖关系 更高效的解决方法是:使用gcc -M 命令自动生成头文件依赖关系 通过gcc -M命令,我们就可以自动生成一个hello.o目标文件的依赖关系,就不需要我们手动将头文件添加到规则中了
也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。...3.Makefile内容 Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 1.显式规则。显式规则说明了,如何生成一个或多个的目标文件。...4.make的工作流程 执行Makefile时,在默认的方式下,我们只输入make命令,则相当于make first_objname_in_Makefile,意思是生成出现在Makefile中第一个目标文件...(3)Makefile的规则通配符%,用于规则描述,一般用于目标文件的生成。...改进地方有两点: (5.1)将多个源文件目录写到一个变量,然后再利用Makefile的Shell函数将所有源文件目录下源文件取出。参考如下代码: DIR_SRC=./src0 .
调用make时,我们可以通过输入以下内容来指定target: make target_name 然后,Make将检查Makefile并执行与该target关联的命令。...一般的想法是,通过添加源,我们可以构建一组必须在当前目标之前执行的顺序依赖项。您可以在任何目标之后指定多个以空格分隔的源。您可以开始了解如何指定精细的任务序列。...某些版本的make对于缩进命令部分的方式很灵活,但一般来说,您应该坚持使用单个选项卡以确保make能够识别您的意图。 Make将目标定义下的每个缩进行视为单独的命令。...创建转换Makefile 我们将创建一个Makefile,它将执行一些图像处理,然后将文件上传到我们的文件服务器,以便我们的网站可以显示它们。...的文件: nano Makefile 在此文件中,我们将开始实施转化目标。
对于单个文件的简单程序,一条命令就可以直接搞定了(编译+连接),但是如果是一个复杂的工程,可能有成千上万个文件,然后需要链接大量的动态或静态库。试想一下,你还想一条一条命令执行吗?...然而到这里又会想,既然编译链接都是这么类似的过程,能不能给它们写一些通用的规则,搞得这么复杂干嘛?然后按照规则去执行就好了。 而makefile就是这样的一个规则文件,make是规则的解释执行者。...然而实际上这里面的门道还有很多,例如伪目标,自动推导,隐晦规则,变量定义。本文作为认识性的文章暂时不具体介绍。 总结来说就是,给规则,按照规则生成目标。 makefile做了什么?...将源代码文件编译成可重定位目标文件.o(参考《静态库和动态库的区别》) 设置编译器选项,例如是否开启优化,传递宏,打开警告等 链接,将静态库或动态库与目标文件链接 所以问题就变成了,如何利用makefile...对于一个复杂的项目而言,makefile还有很多东西可介绍,例如如何设置变量,如何交叉编译,如何多个目录编译,如何自动推导,如何分支选择等等。这些都是后话了。
Makefile文件 Makefile描述了整个工程的编译连接规则。Makefile的基本规则为: TARGET...: DEPENDENCIES... COMMAND ......DEPENDENCIES:依赖是用来产生目标的输入文件列表,一个目标通常依赖与多个文件。...如果此时再次输入make,会看到: $ make make: 'main' is up to date. make的编译规则是根据时间来进行判断,一旦依赖列表中某个文件的更新时间比目标文件晚,则会重新生成目标...将执行伪目标下面的命令。...选项名 作用 $@ 规则的目标文件名 $< 规则的第一个依赖文件名 $^ 规则的所有依赖文件列表 刚才的Makefile文件,我们可以改写为: main:main.o add.o sub.o
make工具通过一个称为Makefile的文件来完成并自动维护编译工作,Makefile文件描述了整个工程的编译、连接规则。 2. Makefile文件 Makefile描述了整个工程的编译连接规则。...DEPENDENCIES:依赖是用来产生目标的输入文件列表,一个目标通常依赖与多个文件。...如果此时再次输入make,会看到: $ make make: 'main' is up to date. make的编译规则是根据时间来进行判断,一旦依赖列表中某个文件的更新时间比目标文件晚,则会重新生成目标...将执行伪目标下面的命令。...选项名 作用 $@ 规则的目标文件名 $< 规则的第一个依赖文件名 $^ 规则的所有依赖文件列表 刚才的Makefile文件,我们可以改写为: main:main.o add.o sub.o
clean: 清理规则,执行 make clean 时将删除生成的可执行文件和中间目标文件。 3. 使用 Makefile 在项目目录中,执行以下命令: 构建项目: make 或 make all。...Makefile 规则 Makefile 通常包含规则(rules),规则描述了如何生成一个或多个目标文件。...通用规则 如果有多个类似的目标文件,可以使用通用规则。通用规则使用通配符 % 来匹配文件名的一部分。...这样可以将 Makefile 分成多个模块,提高可维护性。...基本结构 Makefile 文件由一系列规则和变量组成。每个规则描述了一个或多个目标文件的生成方式。
领取专属 10元无门槛券
手把手带您无忧上云