用make實現的小型c c 可復用編譯器

2021-09-27 13:22:25 字數 1140 閱讀 1685

dir_src := src #源**資料夾名

dir_inc := inc #標頭檔案資料夾名

type_inc := .h

type_src := .c #當為c++檔案是改為.cpp

type_obj := .o

cc := gcc #編譯c++**是改為g++

lflags := #如有編譯選項,則在這裡新增,如-pthread

cflags := -i $(dir_inc)

ifeq ($(debug),true) #debug版本編譯

cflags += -g

endif

mkdir := mkdir

rm := rm -fr

hdrs := $(wildcard $(dir_inc)/*$(type_inc))

hdrs := $(notdir $(hdrs))

objs := $(wildcard $(dir_src)/*$(type_src))

objs := $(objs:$(type_src)=$(type_obj))

objs := $(patsubst $(dir_src)/%, $(dir_build)/%, $(objs))

vpath %$(type_inc) $(dir_inc)

vpath %$(type_src) $(dir_src)

$(dir_build) :

$(mkdir) $@

$(cc) $(lflags) -o $@ $^

$(dir_build)/%$(type_obj) : %$(type_src) $(hdrs)

$(cc) $(cflags) -o $@ -c $<

clean :

$(rm) $(dir_build)

本文為狄泰軟體學院課程學習筆記

可復用單鏈表的實現

linklist.h ifndef linklist h define linklist h typedef void linklist 定義結點指標域 typedef struct tag linklistnode linklistnode struct tag linklistnode 定義頭結...

vue 用 key 管理可復用的元素

vue 會盡可能高效地渲染元素,通常會復用已有元素而不是從頭開始渲染。這麼做除了使 vue 變得非常快之外,還有其它一些好處。例如,如果你允許使用者在不同的登入方式之間切換 usernamelabel template emaillabel template 那麼在上面的 中切換logintype將...

C C 用遞迴實現n的k次方

用if條件進行限制,在某一狀態下進行遞迴呼叫自身 通過一步步的遞迴呼叫,應該向if判斷條件的方向逼近 以停止遞迴 找到遞迴的重點 每次遞迴的都要將乙個大的問題劃分成子問題 首先呢,我們定義乙個函式,就叫 my pow吧,為了避免與庫函式中的 pow衝突 難不成弄個真假美猴王?引數呢,n表示底數,比如...