网站两边的悬浮框怎么做,成都做营销型网站建设,青岛网站制作定制,福州短视频seo网站make-k:即使make程序出错也继续向下运行-n:将原来执行的命令输出#xff0c;而不执行-f:指定makefile的文件名称-p:打印出系统缺省定义的内部规则下面放我项目中的一个比较详细的Makefile文件#xff1a; #****************************************************************…make -k:即使make程序出错也继续向下运行 -n:将原来执行的命令输出而不执行 -f:指定makefile的文件名称 -p:打印出系统缺省定义的内部规则 下面放我项目中的一个比较详细的Makefile文件 #**************************************************************************
# *
# PROJECT : MIPS port for UCOS-II *
# *
# MODULE : MakeFile *
# *
# AUTHOR : *
# *
# PROCESSOR : MIPS 4KEc (32 bit RISC) *
# *
# Tool-chain : Cygnus *
# *
# DESCRIPTION : *
# Makefile used for building application. *
# *
# The default target (all) builds application in two formats : *
# *.elf : Image in ELF format. *
# *.rec : Image in S-record format. *
# *
# The linker also generates a MAP file *.map. *
# *
# Other targets are : *
# clean : Deletes all files generated by makefile. *
# depend : Builds dependency file. *
# *
#*************************************************************************/CC mips-elf-gcc
LD mips-elf-ld
OBJCOPY mips-elf-objcopy
OBJDUMP mips-elf-objdump# **********************************************
# Endianness
# **********************************************ENDIAN ELifeq ($(ENDIAN),EL)
OFORMAT -EL
else
OFORMAT -EB
endif# **********************************************
# Name of application
# **********************************************IMAGENAME syscfg
LSTNAME syscfg# **********************************************
# Type of Processor Board
# **********************************************Processor mips# **********************************************
# Directories
# **********************************************
ROOT ./../../..
CASEROOT $(ROOT)/case
SDKROOT $(ROOT)/sdk
LIBROOT $(SDKROOT)/lib
ARCHROOT $(SDKROOT)/kernel/$(Processor)
SRCDIR $(SDKROOT)/kernel $(ARCHROOT) $(SDKROOT)/kernel/zlibINCDIR $(SDKROOT)/include
ifeq ($(WIFI),1)
BINDIR $(SDKROOT)/bin/wifi
LSTNAME syscfg_wifi
else
BINDIR $(SDKROOT)/bin
endif
LINKDIR .VPATH $(SRCDIR)# **********************************************
# Image file names and map file
# **********************************************IMAGE_ELF $(IMAGENAME).elf
IMAGE_LST $(LSTNAME).lst
IMAGE_REC $(IMAGENAME).rec
IMAGE_BIN $(IMAGENAME).sys
MAP $(LSTNAME).map# **********************************************
# Compiler and linker options
# **********************************************
ifeq ($(AMGUI),1)
GUI_CFG -DUSE_AMGUI
else
GUI_CFG
endififeq ($(WIFI),1)
WIFI_CFG -DUSE_WIFI
else
WIFI_CFG
endifINCLUDE -I$(SDKROOT)/kernel -I$(SDKROOT)/include -I$(SDKROOT)/inc -I$(SDKROOT)/kernel/zlib#CC_OPTS -g -c -G0 -fPIC -O0 $(OFORMAT) $(INCLUDE) -mips32
CC_OPTS -g -c -G0 -Os $(OFORMAT) $(INCLUDE) -mips32 -fno-builtin -mno-abicalls -fno-PIC -DHAVE_R4K_FLUSH_CACHE_ALL1 $(GUI_CFG) $(WIFI_CFG)CC_OPTS_A $(CC_OPTS) -D_ASSEMBLER_LD_SCRIPT $(LINKDIR)/link.xnLD_OPTS -g -G0 -T $(LD_SCRIPT) -o $(IMAGE_ELF) -L$(LIBROOT)/libc --whole-archive -lmyc --no-whole-archive -Map $(MAP) $(OFORMAT)# **********************************************
# Files to be compiled
# **********************************************SRC_C $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.c))
SRC_S $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.S))
SRC $(SRC_C) $(SRC_S)OBJ_C $(notdir $(patsubst %.c, %.o, $(SRC_C)))
OBJ_S $(notdir $(patsubst %.S, %.o, $(SRC_S)))
OBJ $(OBJ_C) $(OBJ_S)# **********************************************
# Rules
# **********************************************.PHONY : all
all : $(IMAGE_BIN)$(IMAGE_BIN) : $(IMAGE_ELF)$(OBJCOPY) -O binary $(IMAGE_ELF) $(BINDIR)/$(IMAGE_BIN) $(OBJDUMP) -D $(IMAGE_ELF) $(IMAGE_LST)
# cp *_api.a $(LIBROOT)rm $(LINKDIR)/*.o echo 恭喜你编译成功$(IMAGE_ELF) : $(OBJ)$(LD) $(OBJ) $(LIBROOT)/flash_api.a $(LIBROOT)/carddet_api.a $(LIBROOT)/drm_api.a $(LIBROOT)/charge_api.a $(LD_OPTS) $(OBJ_C) : %.o : %.c $(CC) $(CC_OPTS) -o $ $$(OBJ_S) : %.o : %.S$(CC) $(CC_OPTS_A) -o $ $.PHONY : clean dependclean :rm -f $(LINKDIR)/$(IMAGENAME).* $(BINDIR)/$(IMAGENAME).* $(BINDIR)/depend.mkrm $(LINKDIR)/*.o
depend :$(CC) $(INCLUDE) -M $(SRC) $(BINDIR)/depend.mk-include depend.mk依赖关系 目标名,加冒号后面跟空格或Tab例如 main: main.of1.of2.o main.o: main.c def1.h f1.o:f1.cdef1.h def2.h f2.o: f2.c def2.hdef3.h 默认时make程序只更新makefile中的第一个目标 使用一个特殊的目标all更新多个目标文件 all: main hello ... 规则 目标: [依赖模块][;命令] 或者 目标: [依赖模块]命令命令...... 如果命令写在一行的话命令之前用分号;隔开 如果分成多行书写的话后继的行务必以Tab字符为先导 (对应makefile而言空格字符和Tab字符是不同的) !!!makefile文件中的行尾加上空格键的话也会导致make命令失败 Sample——myMakefile -------------------------------------- |main: main.o f1.o f2.o |gcc -o main main.o f1.o f2.o |main.o: main.c def1.h |gcc -c main.c |f1.o: f1.c def1.h def2.h |gcc -c f1.c |f2.o: f2.c def2.h def3.h |gcc -c f2.c -------------------------------------- $make -f myMakefile 宏——makefile 宏标识符值列表 1.宏标识符通常全部大写 2.通过$(宏标识符)或者${宏标识符}来访问这个标识符所代表的值 3.也可以通过make命令来传递宏的值例如$make CCgcc --hosti386 4.分为用户自定义宏和系统内部定义的宏 常用系统宏变量 $目标文件名 $规则中的第一个文件名 $^规则中所有相关文件的名称 $?规则中日期比目标新的文件列表用空格分开 $(D)目标文件的目录部分 $(F)目标文件的文件名部分 $*去掉后缀的目标文件名例如pro.o则$*表示pro all:表示编译所有的内容 clean:表示清楚目标 distclean:表示清楚所有的内容 install:表示进行安装的内容转载于:https://www.cnblogs.com/p2liu/archive/2013/01/28/6048767.html