![通用Makefile模板及實(shí)例_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/4992fb4f-8b0a-437a-a4ba-f9ab3a06f882/4992fb4f-8b0a-437a-a4ba-f9ab3a06f8821.gif)
![通用Makefile模板及實(shí)例_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/4992fb4f-8b0a-437a-a4ba-f9ab3a06f882/4992fb4f-8b0a-437a-a4ba-f9ab3a06f8822.gif)
![通用Makefile模板及實(shí)例_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/4992fb4f-8b0a-437a-a4ba-f9ab3a06f882/4992fb4f-8b0a-437a-a4ba-f9ab3a06f8823.gif)
![通用Makefile模板及實(shí)例_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/4992fb4f-8b0a-437a-a4ba-f9ab3a06f882/4992fb4f-8b0a-437a-a4ba-f9ab3a06f8824.gif)
![通用Makefile模板及實(shí)例_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/8/4992fb4f-8b0a-437a-a4ba-f9ab3a06f882/4992fb4f-8b0a-437a-a4ba-f9ab3a06f8825.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 通用Makefile1實(shí)現(xiàn)的功能:make編譯和連接程序 make objs編譯程序,生成目標(biāo)文件 make clean清除編譯產(chǎn)生的目標(biāo)文件(*.o)和依賴文件(*.d) make cleanall清除目標(biāo)文件(*.o)、依賴文件(*.d)和可執(zhí)行文件(*.exe) make rebuild重新編譯連接程序,相當(dāng)于make clean && makeUsage: Makefile源代碼# Gneric C/C+ Makefile # PROGRAM := SRCDIRS := SRCEXTS := CPPFLAGS := CFLAGS := CFLAGS += CXXFL
2、AGS := CXXFLAGS += LDFLAGS := LDFLAGS += SHELL = /bin/sh SOURCES = $(foreach d,$(SRCDIRS),$(wildcard $(addprefix $(d)/*,$(SRCEXTS) OBJS = $(foreach x,$(SRCEXTS), $(patsubst %$(x),%.o,$(filter %$(x),$(SOURCES) DEPS = $(patsubst %.o,%.d,$(OBJS) .PHONY: all objs clean cleanall rebuild all : $(PROGRAM)
3、%.d : %.c $(CC) -MM -MD $(CFLAGS) 1lt; %.d : %.C $(CC) -MM -MD $(CXXFLAGS) 1lt; objs : $(OBJS) %.o : %.c $(CC) -c $(CPPFLAGS) $(CFLAGS) 1lt; %.o : %.cpp $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) 1lt; $(PROGRAM) : $(OBJS) ifeq ($(strip $(SRCEXTS),.c) $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) else $(CXX) -o $(PR
4、OGRAM) $(OBJS) $(LDFLAGS) endif -include $(DEPS) rebuild: clean call clean: $(RM) *.o *.d cleanall: clean $(RM) $(PROGRAM) $(PROGRAM).exe 2 通用Makefile2# Generic Makefile for C/C+ Program# Author: whyglinux (whyglinux AT hotmail DOT com)#
5、60;Date: 2006/03/04# Description:# The makefile searches in <SRCDIRS> directories for the source files# with extensions specified in <SOURCE_EXT>, then compiles the source
6、s# and finally produces the <PROGRAM>, the executable file, by linking# the objectives.# Usage:# $ make compile and link the
7、60;program.# $ make objs compile only (no linking. Rarely used).# $ make clean clean the objectives and dependencies.# $
8、 make cleanall clean the objectives, dependencies and executable.# $ make rebuild rebuild the program. The same as make clean && make all.#=# Custo
9、mizing Section: adjust the following if necessary.#=# The executable file name.# It must be specified.# PROGRAM := a.out # the executable namePROGRAM
10、0;:=# The directories in which source files reside.# At least one path should be specified.# SRCDIRS := . # current directorySRCDIRS
11、160;:=# The source file types (headers excluded).# At least one type should be specified.# The valid suffixes are among of .c, .C, .cc, .cpp, .CPP, .c+, .cp, or
12、;.cxx.# SRCEXTS := .c # C program# SRCEXTS := .cpp # C+ program# SRCEXTS := .c .cpp # C/C+ programSRCEXTS
13、0;:=# The flags used by the cpp (man cpp for more).# CPPFLAGS := -Wall -Werror # show all warnings and take them as errorsCPPFLAGS :=# The compiling flag
14、s used only for C.# If it is a C+ program, no need to set these flags.# If it is a C and C+ merging program, set these flags for the C parts
15、.CFLAGS :=CFLAGS +=# The compiling flags used only for C+.# If it is a C program, no need to set these flags.# If it is a C and
16、160;C+ merging program, set these flags for the C+ parts.CXXFLAGS :=CXXFLAGS +=# The library and the link options ( C and C+ common).LDFLAGS :=LDFLAGS
17、; +=# Implict Section: change the following only when necessary.#=# The C program compiler. Uncomment it to specify yours explicitly.#CC = gcc# The C+
18、;program compiler. Uncomment it to specify yours explicitly.#CXX = g+# Uncomment the 2 lines to compile C programs as C+ ones.#CC = $(CX
19、X)#CFLAGS = $(CXXFLAGS)# The command used to delete file.#RM = rm -f# Stable Section: usually no need to be changed. But you can add
20、;more.#=SHELL = /bin/shSOURCES = $(foreach d,$(SRCDIRS),$(wildcard $(addprefix $(d)/*,$(SRCEXTS)OBJS = $(foreach x,$(SRCEXTS), $(patsubst %$(x),%.o,$(filter %$(x),$(SOUR
21、CES)DEPS = $(patsubst %.o,%.d,$(OBJS).PHONY : all objs clean cleanall rebuildall : $(PROGRAM)# Rules for creating the dependency files (.d).#-%.d : %.c$(CC) -MM -MD $(
22、CFLAGS) $<%.d : %.C$(CC) -MM -MD $(CXXFLAGS) $<%.d : %.cc$(CC) -MM -MD $(CXXFLAGS) $<%.d : %.cpp$(CC) -MM -MD $(CXXFLAGS) $<%.d : %.CPP$(CC) -MM -MD $(CXXFLAGS) $&
23、lt;%.d : %.c+$(CC) -MM -MD $(CXXFLAGS) $<%.d : %.cp$(CC) -MM -MD $(CXXFLAGS) $<%.d : %.cxx$(CC) -MM -MD $(CXXFLAGS) $<# Rules for producing the objects.#-objs : $(OBJ
24、S)%.o : %.c$(CC) -c $(CPPFLAGS) $(CFLAGS) $<%.o : %.C$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $<%.o : %.cc$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $<%.o : %.cpp$(CXX) -c $(CPPFLAGS) $(CXXFLA
25、GS) $<%.o : %.CPP$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $<%.o : %.c+$(CXX -c $(CPPFLAGS) $(CXXFLAGS) $<%.o : %.cp$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $<%.o : %.cxx$(CXX) -c $(CPPFLA
26、GS) $(CXXFLAGS) $<# Rules for producing the executable.#-$(PROGRAM) : $(OBJS)ifeq ($(strip $(SRCEXTS), .c) # C file$(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS)else
27、60; # C+ file$(CXX) -o $(PROGRAM) $(OBJS) $(LDFLAGS)endif-include $(DEPS)rebuild: clean allclean :$(RM) *.o *.dclea
28、nall: clean$(RM) $(PROGRAM) $(PROGRAM).exe# End of the Makefile # Suggestions are welcome # All rights reserved #下面提供兩個(gè)例子來(lái)具體說(shuō)明上面 Makefile 的用法。例一Hello World 程序這個(gè)程序的功能是輸出 Hello, wo
29、rld! 這樣一行文字。由 hello.h、hello.c、main.cxx 三個(gè)文件組成。前兩個(gè)文件是 C 程序,后一個(gè)是 C+ 程序,因此這是一個(gè) C 和 C+ 混編程序。/* File name: hello.h * C header file */#ifndef HELLO_H#define HELLO_H#ifdef _cplusplusextern &qu
30、ot;C" #endif void print_hello();#ifdef _cplusplus#endif#endif/* File name: hello.c * C source file. */#include "hello.h"#include <stdio.h>void print_hello() puts( "Hello, w
31、orld!" );/* File name: main.cxx * C+ source file. */#include "hello.h"int main() print_hello(); return 0;建立一個(gè)新的目錄,然后把這三個(gè)文件拷貝到目錄中,也把 Makefile 文件拷貝到目錄中。之后,對(duì) Makefile 的相關(guān)項(xiàng)目進(jìn)行如下設(shè)置:PROGRAM
32、 := hello # 設(shè)置運(yùn)行程序名SRCDIRS := . # 源程序位于當(dāng)前目錄下SRCEXTS := .c .cxx # 源程序文件有 .c 和 .cxx&
33、#160;兩種類型CFLAGS := -g # 為 C 目標(biāo)程序包含 GDB 可用的調(diào)試信息CXXFLAGS := -g # 為 C+ 目標(biāo)程序包含 GDB 可用的調(diào)試信息由于這個(gè)簡(jiǎn)單的程序只使用了&
34、#160;C 標(biāo)準(zhǔn)庫(kù)的函數(shù)(puts),所以對(duì)于 CFLAGS 和 CXXFLAGS 沒(méi)有過(guò)多的要求,LDFLAGS 和 CPPFLAGS 選項(xiàng)也無(wú)需設(shè)置。經(jīng)過(guò)上面的設(shè)置之后,執(zhí)行 make 命令就可以編譯程序了。如果沒(méi)有錯(cuò)誤出現(xiàn)的話,./hello 就可以運(yùn)行程序了。如果修改了源程序的話,可以看到只有和修改有關(guān)的源文件被編譯。也可以再為程序添加新的源文件,只要它們的擴(kuò)展名是已經(jīng)在 Makefile 中設(shè)置過(guò)的,那么就沒(méi)有必要修改Makefile。例二G
35、TK+ 版 Hello World 程序這個(gè) GTK+ 2.0 版的 Hello World 程序可以從下面的網(wǎng)址上得到:/tutorial/c58.html#SEC-HELLOWORLD。當(dāng)然,要編譯 GTK+ 程序,還需要你的系統(tǒng)上已經(jīng)安裝好了 GTK+。跟第一個(gè)例子一樣,單獨(dú)創(chuàng)建一個(gè)新的目錄,把上面網(wǎng)頁(yè)中提供的程序保存為 main.c 文件。對(duì) Makefile 做如下設(shè)置:PROGRA
36、M := hello # 設(shè)置運(yùn)行程序名SRCDIRS := . # 源程序位于當(dāng)前目錄下SRCEXTS := .c # 源程序文件只有
37、0;.c 一種類型CFLAGS := pkg-config -cflags gtk+-2.0 # CFLAGSLDFLAGS := pkg-config -libs gtk+-2.0 # LDFLAGS這是一個(gè) C 程序,所以 CXXFLAGS 沒(méi)有必要設(shè)置即使被設(shè)置了也不會(huì)被使用。編譯和連接 GTK+
38、0;庫(kù)所需要的 CFLAGS 和 LDFLAGS 由 pkg-config 程序自動(dòng)產(chǎn)生?,F(xiàn)在就可以運(yùn)行 make 命令編譯、./hello 執(zhí)行這個(gè) GTK+ 程序了。3 通用Makefile3# Generic makefile - 萬(wàn)能Makefile# for compiling and linking C+ projects on Linux # Author: George Foot Modified:Jackie Lee# Customising# Adjust the
39、following if necessary; EXECUTABLE is the target# executable's filename, and LIBS is a list of libraries to link in# (e.g. alleg, stdcx, iostr, etc). You can override these on make's# command line of course, if you prefer to do it that way.#EXECUTABLE := main # 可執(zhí)行文件名LIBDIR:=
40、160; # 靜態(tài)庫(kù)目錄LIBS := # 靜態(tài)庫(kù)文件名INCLUDES:=. # 頭文件目錄SRCDIR:= # 除了當(dāng)前目錄外,其他的源代碼文件目錄# # Now alter any implicit rules' variables if
41、you like, e.g.:CC:=g+CFLAGS := -g -Wall -O3CPPFLAGS := $(CFLAGS)CPPFLAGS += $(addprefix -I,$(INCLUDES)CPPFLAGS += -MMD# # The next bit checks to see whether rm is in your djgpp bin# # directory; if not it uses del instead, but this can cause (harmless)# # File not found' error messages. If you a
42、re not using DOS at all,# # set the variable to something which will unquestioningly remove# # files.#RM-F := rm -f# # You shouldn't need to change anything below this point.#SRCS := $(wildcard *.cpp) $(wildcard $(addsuffix /*.cpp, $(SRCDIR)OBJS := $(patsubst %.cpp,%.o,$(SRCS)DEPS := $(patsubst
43、%.o,%.d,$(OBJS)MISSING_DEPS := $(filter-out $(wildcard $(DEPS),$(DEPS)MISSING_DEPS_SOURCES := $(wildcard $(patsubst %.d,%.cpp,$(MISSING_DEPS).PHONY : all deps objs clean veryclean rebuild infoall: $(EXECUTABLE)deps : $(DEPS)objs : $(OBJS)clean : $(RM-F) *.o $(RM-F) *.dveryclean: clean $(RM-F) $(EXEC
44、UTABLE)rebuild: veryclean allifneq ($(MISSING_DEPS),)$(MISSING_DEPS) : $(RM-F) $(patsubst %.d,%.o,$)endif-include $(DEPS)$(EXECUTABLE) : $(OBJS) $(CC) -o $(EXECUTABLE) $(OBJS) $(addprefix -L,$(LIBDIR) $(addprefix -l,$(LIBS)info: echo $(SRCS) echo $(OBJS) echo $(DEPS) echo $(MISSING_DEPS) echo $(MISS
45、ING_DEPS_SOURCES)注:1)命令行前的空白符必須為一個(gè)制表符(Tab);如,$(RM-F) *.o前不是空格,而是一個(gè)制表符;內(nèi)容解析1.Makefile基本語(yǔ)法target為要生成的目標(biāo)文件;dependency為target的依賴文件;command為用于生成target的命令行;<target> : <dependency> <dependency> .(tab)<command>(tab)<command> . . .2.賦值符號(hào) := 與 = :=與=的區(qū)別在于,符號(hào):=表示立即展開(kāi)變量值。例如:A
46、:=fooB:=$(A)A:=bar這時(shí),B的值仍為foo,因?yàn)樗驯徽归_(kāi),不會(huì)再隨A的值改變而改變。3.符號(hào)#是Makefile的注釋符號(hào)4.wildcard函數(shù)SRCS:=$(wildcard *.cpp) 表示列舉當(dāng)前目錄中擴(kuò)展名為.cpp的所有文件,然后賦值給變量SRCS。詳細(xì)請(qǐng)google之。5.patsubst函數(shù)OBJS := $(patsubst %.cpp,%.o,$(SRCS)表示,將$(SRCS)中所有滿足模式%.cpp的字符串替換為%.o。6.filter-out函數(shù)$(filter-out $(A),$(B)表示從B中過(guò)濾掉A中的內(nèi)容,返回剩余內(nèi)容;7. “.PHON
47、Y”用.PHONY修飾的target是“偽目標(biāo)”,不需要生成真實(shí)的文件;make假定phony target是已經(jīng)生成的,然后更新它后邊的依賴文件和執(zhí)行它下邊的命令(command);8.all deps objs clean veryclean rebuild info這些都是“偽目標(biāo)”。all是第一個(gè)目標(biāo),所以輸入make時(shí)它被默認(rèn)執(zhí)行;all生成或更新所有*.cpp文件對(duì)應(yīng)的*.d文件和*.o文件,并鏈接所有*.o文件生成可執(zhí)行文件$(EXECUTABLE)。deps僅僅生成*.d文件;.d文件是什么文件?它包含了代碼文件的依賴信息。objs僅僅生成*.o文件;.o文件是C+代碼編譯后的
48、中間結(jié)果文件,廢話!clean用于刪除*.d文件和*.o文件。veryclean刪除*.d文件、*.o文件,還有名為$(EXECUTABLE)的可執(zhí)行文件。rebuild先調(diào)用veryclean清除結(jié)果文件,再調(diào)用all重新編譯和鏈接。info查看某些信息。使用方法:make deps即可執(zhí)行deps;9.ifneq.else.endif條件語(yǔ)句,ifneq表示如果不想等,則.;10.include <files>語(yǔ)句include表示把<files>的內(nèi)容包含進(jìn)來(lái);$(DEPS)是包含依賴信息的文件,每個(gè)源文件對(duì)應(yīng)一個(gè).d文件;-include $(DEPS)表示把這
49、些依賴信息包含進(jìn)來(lái);11.鏈接*.o文件,生成可執(zhí)行文件主菜來(lái)了!$(EXECUTABLE) : $(OBJS) $(CC) -o $(EXECUTABLE) $(OBJS) $(addprefix -l,$(LIBS) $(EXECUTABLE)為可執(zhí)行文件名;$(OBJS)為所有.o文件名;$(CC)在這里是g+;$(addprefix -l,$(LIBS)添加引用庫(kù);前面說(shuō)好的*.d文件和*.o文件是怎么生成的呢?貌似沒(méi)有命令指出要生成它們呀!請(qǐng)看隱含規(guī)則!12. 隱含規(guī)則(Implicit rules)$(EXECUTABLE)依賴于$(OBJS),但makefile中沒(méi)有指
50、明$(OBJS)依賴于誰(shuí),也沒(méi)指明命令生成它們;這時(shí),make的隱含規(guī)則開(kāi)始起作用;針對(duì)$(OBJS)中的每個(gè)目標(biāo),make自動(dòng)調(diào)用:$(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $ 依次生成.o文件和.d文件;$<表示依賴文件列表的第一個(gè)文件名;$表示目標(biāo)文件名;之所以會(huì)生成.d文件,是由于“-MMD”這一編譯選項(xiàng)。為g+加上這一選項(xiàng)后,編譯器會(huì)生成文件依賴信息,并存放至.d文件中。每一個(gè).cpp文件相應(yīng)地生成一個(gè).d文件和一個(gè).o文件。13.符號(hào)命令行前的符號(hào)表示不回顯命令行;14.CFLAGS和CPPFLAG
51、S這兩者包含編譯選項(xiàng),更詳細(xì)內(nèi)容請(qǐng)Google之。-g 添加gdb調(diào)試信息;-Wall 提示warning信息;-O3 表示第3級(jí)優(yōu)化;4 通用Makefile4# # Generic Makefile for C/C+ Program # # License: GPL (General Public License) # Author: whyglinux
52、<whyglinux AT gmail DOT com> # Date: 2006/03/04 (version 0.1) # 2007/03/24 (version 0.2) #
53、; 2007/04/09 (version 0.3) # 2007/06/26 (version 0.4) # 2008/04/05 (version 0.5) # #
54、60;Description: # - # This is an easily customizable makefile template. The purpose is to # provide an instant building environment for C/C+ programs. #
55、 # It searches all the C/C+ source files in the specified directories, # makes dependencies, compiles and links to form an executable. # # Besides&
56、#160;its default ability to build C/C+ programs which use only # standard C/C+ libraries, you can customize the Makefile to build # those using other libraries.&
57、#160;Once done, without any changes you can # then build programs using the same or less libraries, even if source # files are renamed, added or removed.
58、60;Therefore, it is particularly # convenient to use it to build codes for experimental or study use. # # GNU make is expected to use the Makefile.
59、160;Other versions of makes # may or may not work. # # Usage: # - # 1. Copy the Makefile to your program directory. # 2. Customi
60、ze in the "Customizable Section" only if necessary: # * to use non-standard C/C+ libraries, set pre-processor or compiler # opti
61、ons to <MY_CFLAGS> and linker ones to <MY_LIBS> # (See Makefile.gtk+-2.0 for an example) # * to search sources in more di
62、rectories, set to <SRCDIRS> # * to specify your favorite program name, set to <PROGRAM> # 3. Type make to start building your program.
63、 # # Make Target: # - # The Makefile provides the following targets to make: # $ make compile and
64、60;link # $ make NODEP=yes compile and link without generating dependencies # $ make objs compile only (no linking) # &
65、#160;$ make tags create tags for Emacs editor # $ make ctags create ctags for VI editor # $ make clean
66、 clean objects and the executable file # $ make distclean clean objects, the executable and dependencies # $ make help
67、160; get the usage of the makefile # #= # Customizable Section: adapt those variables to suit your program. #= # The pre-processor&
68、#160;and compiler options. MY_CFLAGS = # The linker options. MY_LIBS = # The pre-processor options used by the cpp (man cpp for
69、0;more). CPPFLAGS = -Wall # The options used in linking as well as in any direct use of ld. LDFLAGS = # The directo
70、ries in which source files reside. # If not specified, only the current directory will be serached. SRCDIRS = # The executable file name.
71、160; # If not specified, current directory name or a.out' will be used. PROGRAM = # Implicit Section: change the following only when necessary.
72、 #= # The source file types (headers excluded). # .c indicates C source files, and others C+ ones. SRCEXTS = .c .C .cc .cpp .CPP .
73、c+ .cxx .cp # The header file types. HDREXTS = .h .H .hh .hpp .HPP .h+ .hxx .hp # The pre-processor and compiler options. #
74、;Users can override those variables from the command line. CFLAGS = -g -O2 CXXFLAGS= -g -O2 # The C program compiler. #CC
75、0;= gcc # The C+ program compiler. #CXX = g+ # Un-comment the following line to compile C programs as C+ ones. #CC
76、 = $(CXX) # The command used to delete file. #RM = rm -f ETAGS = etags ETAGSFLAGS = CTAGS
77、60;= ctags CTAGSFLAGS = # Stable Section: usually no need to be changed. But you can add more. #= SHELL = /bin/sh EMPTY
78、 = SPACE = $(EMPTY) $(EMPTY) ifeq ($(PROGRAM),) CUR_PATH_NAMES = $(subst /,$(SPACE),$(subst $(SPACE),_,$(CURDIR) PROGRAM = $(word $(words $(CUR_PATH_NA
79、MES),$(CUR_PATH_NAMES) ifeq ($(PROGRAM),) PROGRAM = a.out endif endif ifeq ($(SRCDIRS),) SRCDIRS = . endif SOURCES
80、 = $(foreach d,$(SRCDIRS),$(wildcard $(addprefix $(d)/*,$(SRCEXTS) HEADERS = $(foreach d,$(SRCDIRS),$(wildcard $(addprefix $(d)/*,$(HDREXTS) SRC_CXX = $(filter-out %.c,$(SOURCES) OBJS
81、0; = $(addsuffix .o, $(basename $(SOURCES) DEPS = $(OBJS:.o=.d) # Define some useful variables. DEP_OPT = $(shell if $(CC) -version | grep
82、"GCC" >/dev/null; then echo "-MM -MP" else echo "-M" fi ) DEPEND
83、160; = $(CC) $(DEP_OPT) $(MY_CFLAGS) $(CFLAGS) $(CPPFLAGS) DEPEND.d = $(subst -g ,$(DEPEND) COMPILE.c = $(CC) $(MY_CFLAGS) $(CFLAGS) $(
84、CPPFLAGS) -c COMPILE.cxx = $(CXX) $(MY_CFLAGS) $(CXXFLAGS) $(CPPFLAGS) -c LINK.c = $(CC) $(MY_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) LINK.cxx
85、160; = $(CXX) $(MY_CFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) .PHONY: all objs tags ctags clean distclean help show # Delete the default suffixes
86、0;.SUFFIXES: all: $(PROGRAM) # Rules for creating dependency files (.d). #- %.d:%.c echo -n $(dir $<) > $
87、160; $(DEPEND.d) $< >> $ %.d:%.C echo -n $(dir $<) > $ $(DEPEND.d) $< >> $ %.d
88、:%.cc echo -n $(dir $<) > $ $(DEPEND.d) $< >> $ %.d:%.cpp echo -n $(dir $<) > $
89、160; $(DEPEND.d) $< >> $ %.d:%.CPP echo -n $(dir $<) > $ $(DEPEND.d) $< >> $ &
90、#160;%.d:%.c+ echo -n $(dir $<) > $ $(DEPEND.d) $< >> $ %.d:%.cp echo -n $(dir $<) >
91、60;$ $(DEPEND.d) $< >> $ %.d:%.cxx echo -n $(dir $<) > $ $(DEPEND.d) $< >> $
92、 # Rules for generating object files (.o). #- objs:$(OBJS) %.o:%.c $(COMPILE.c) $< -o $ %.o:%.C $(COMPILE.cxx) $< -o $ %.o:%.cc $(COMPILE.cxx) $< -o $ %.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新型流動(dòng)人衛(wèi)激光測(cè)距儀合作協(xié)議書
- 2025年羥乙基乙二胺合作協(xié)議書
- 2025年中高檔數(shù)控機(jī)床合作協(xié)議書
- 人教版 七年級(jí)英語(yǔ)下冊(cè) UNIT 8 單元綜合測(cè)試卷(2025年春)
- 2021-2022學(xué)年河南省南陽(yáng)市唐河縣七年級(jí)(上)期中地理試卷-附答案詳解
- 中國(guó)古代文學(xué)史1考試試題及答案
- 2025年個(gè)人簽訂合同委托(2篇)
- 2025年個(gè)人門面房屋租賃合同經(jīng)典版(三篇)
- 2025年產(chǎn)品維護(hù)服務(wù)合同機(jī)器或程序(2篇)
- 2025年個(gè)人車位出租協(xié)議經(jīng)典版(三篇)
- 小學(xué)生心理健康教育學(xué)情分析
- 2024年高考語(yǔ)文一輪復(fù)習(xí):文言文文意概括簡(jiǎn)答題知識(shí)清單 (二)
- 超級(jí)大腦:孩子六維能力培養(yǎng)指南
- 縱隔腫物的護(hù)理查房
- 新能源汽車概論題庫(kù)
- 設(shè)備維保的維修成本和維護(hù)費(fèi)用
- 客運(yùn)站員工安全生產(chǎn)教育培訓(xùn)
- 口腔預(yù)防兒童宣教
- 綠城桃李春風(fēng)推廣方案
- 顱腦損傷的生物標(biāo)志物
- 2023高考語(yǔ)文實(shí)用類文本閱讀-新聞、通訊、訪談(含答案)
評(píng)論
0/150
提交評(píng)論