library += -ltpn_agent -ltpn_effect -ltpn_proc -lhiredis -ljson
ldflags += --as-needed
srcs = $(wildcard *.c)
objs = $(patsubst %.c, %.o, $(srcs))
targets = $(srcs:%.c=%)
$(info $(objs))
$(info $(targets))
all : $(targets)
$(targets): %: %.o
$(cc) $(ldflags) $(library) -o $@ $<
$(objs) : %.o: %.c ./tpn_utils_common.h
$(cc) -c $(cflags) -o $@ $<
clean :
@rm -rf $(targets) $(objs)
#.suffixes:
.phony : all clean
需要注意點:
自動化變數,就是這種變數會把模式中所定義的一系列的檔案自動地挨個取出,直至所有的符合模式的檔案都取完了。
自動化變數只應出現在規則的命令中,否則後果不可**
$@ 表示規則中的目標檔案集。
在模式規則中,如果有多個目標,那麼$@就是匹配於目標中模式定義的集合。
注意,其目標是乙個乙個取出來的
$< 依賴目標中的第乙個目標名字。
如果依賴目標是以模式(即% )定義的,那麼$《將是符合模式的一系列的檔案集。
注意,其是乙個乙個取出來的
$^ 所有的依賴目標的集合。以空格分隔。
如果在依賴目標中有多個重複的,那個這個變數會去除重複的依賴目標,只保留乙份。
$+ 這個變數很像$^,也是所有依賴目標的集合,只是它不去除重複的依賴目標。
.h標頭檔案只應該出現在依賴中,不應該出現在編譯的命令列中。(編譯的時候會被預處理器包含到.c檔案中)
關於pycharm在同一目錄下無法匯入 py檔案
如圖 在同乙個目錄下明明是存在相應的檔案的,在另乙個檔案中匯入卻報錯,編譯器提示沒有對應的模組。當前資料夾郵件,選中mark directory as sources root 此時資料夾如圖呈現藍色,表明此資料夾為資源資料夾。此時,在檔案中引入方式為直接import 注 1.在不同的資料夾路徑下,...
Python呼叫同一目錄下的模組
aa.py檔案如下 def aaout print it is an aa funcition.bb.py中需要呼叫aa.py檔案,cc.py為主檔案 1 若cc.py位於mydir資料夾內,則bb.py呼叫aa.py時需要在aa前面加上 例如,此時bb.py為 from.aa import aao...
cmake 同一目錄下多個原始檔
接下來進入稍微複雜的例子 在同乙個目錄下有多個原始檔。在之前的目錄下新增2個檔案,testfunc.c和testfunc.h。新增完後整體檔案結構如下 testfunc.c內容如下 testfunc.c include include testfunc.h void func int data te...