通用Makefile模板及實(shí)例_第1頁(yè)
通用Makefile模板及實(shí)例_第2頁(yè)
通用Makefile模板及實(shí)例_第3頁(yè)
通用Makefile模板及實(shí)例_第4頁(yè)
通用Makefile模板及實(shí)例_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論