LDFLAGS := -L./lib LDFLAGS += -lpthread -lcustom_lib ##libcustom_lib.so and libpthread.so ##可以同时管理多个工程 TARGET1 := project1 TARGET2 := project2 ##使用 wildcard函数获取指定目录下的所有.c文件 SRC_WILDCARD = $(wildcard *.c src/*.c) ##把所有*.c文件替换成*.o OBJ_WILD...
( C 和 Fortran 编译器也会用到) LDFLAGS 链接器参数。(如:“ld”) 如下面的例子: CROSS_COMPILE = #指定编译器种类,为空,使用的就是gcc;类似于arm_linux_gnu_ LDFLAGS := -lm -lfreetype -lvga #指定编译器链接(根据实际项目手动修改) TARGET := show_file #编译后的程序名(根据实际项目手动修改) ...
prerequisities:要生成那个target所需要的文件或者目标 command:make要执行的命令 target 这一个或多个的目标文件依赖于 prerequisites 中的文件,其生成规则定义在 command 中 在这个 makefile 中,目标文件(target)包含:执行文件 edit 和中间目标文件(*.o),依赖文件(prerequisites)就是冒号后面的那些 .c 文件和 .h ...
CFLAGS="$(TARGET_CFLAGS)"\ CPPFLAGS="$(TARGET_CPPFLAGS)"\ LDFLAGS="$(TARGET_LDFLAGS)"endef 这一段Build/Compile说明这一段程序是编译包。不做多述。 最后一行代码$(eval $(call BuildPackage,hello)作用于package.mk中,使之生效。(非常重要)
# 递归调用subtarget:$(MAKE)-Csubdir 22. 示例 下面是一个包含多个源文件、头文件以及库文件的 Makefile 示例: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 CC=gccCFLAGS=-WallLDFLAGS=SRCDIR=srcINCDIR=includeOBJDIR=objBINDIR=binLIBDIR=libSOURCES=$(wildcard$(SRCDIR)/*.c) ...
export CFLAGS LDFLAGS #把这两个也导出来。 TOPDIR := $(shell pwd) #顶层目录 export TOPDIR TARGET := show_file #目标 obj-y += main.o obj-y += 目录名如package/ obj-y += framework/ all : make -C ./ -f $(TOPDIR)/Makefile.build ...
dependcy_files//生成目标所要的目标文件: dependcy_files 就是,要生成那个target所需要的文件或是目标。 command也就是make需要执行的命令。(任意的Shell命令) 这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于dependcy_files中的文件,其生成规则定义在command中。**==说白一点就是说,dependc...
target: dependencies commands 命令前的Tab键是必须的。下面是一个简单的示例: hello: hello.c gcc -o hello hello.c 变量的使用 在Makefile中声明变量可以使得我们的代码更加简洁。 CC=gcc CFLAGS=-std=c99 LDFLAGS= OBJ=main.o utils.o app: $(OBJ) ...
target:prerequisites command 1. 2. 3. 其中,target为目标,prerequisites为依赖。command Makefile文件使用#进行注释。 目标:往往是程序的中间或者最终生成的文件名,比如目标文件、可执行文件等。 依赖:是指用来产生目标文件的输入文件名,一个目标往往依赖于一个或多个文件。
#LDFLAGS为链接器,参数-print-libgcc-file-name:打印编译器伴随库的名称 exportCC LD OBJCOPY OBJDUMP INCLUDEDIR CFLAGS CPPFLAGS AR #用export声明这些变量使得他们可以被子目录的Makefile使用 objs :=head.o init.o nand.o interrupt.o adc_ts.o serial.o main.o lib/libc.a ...