關於子目錄原始碼檔案編寫makefile檔案

2021-07-05 19:39:27 字數 608 閱讀 9517

在編寫**時,為了防止乙個目錄下**檔案過多,可能會採用子目錄來存放**檔案。這時候,在編譯的過程中,就需要對子目錄的檔案進行編譯,其中涉及到頭檔案和原始檔的處理。

對於標頭檔案來說,需要增加頭檔案目錄引用。對於c/c++檔案,makefile中系統定義了cflags和cxxflags來指定標頭檔案引用目錄,故對於c檔案,可在makefile中增加如下語句:

cflags += -i./dir/

對於c++檔案,可增加如下語句:

cxxflags +=-i./dir/

注:在這裡,我遇到乙個問題。如果我自定義乙個變數 testflags := -i./dir/ ,然後在編譯命令中,使用cxx $(cxxflags) $(testflags) ...來編譯,發現並未將目錄新增到頭檔案路徑中,編譯還是出錯,會提示 「該檔案或目錄不存在」。查了下資料,暫未找到答案。

對於原始檔來說,可通過如下方式將子目錄下的原始檔加入編譯列表

src  := $(wildcard *.cpp) $(wildcard ./dir/*.cpp) 

obj  := $(src:%.cpp=%.o)

其中,$(wildcard ./dir/*.cpp) 表示獲取子目錄dir下所有原始檔的列表。

原始碼 刪除指定目錄下(包含子目錄)的檔案

源 如下 project author fuweilin fuweilin hotmail.date 2005 1 28 include include include include include define true 1 define false 0 char path path char ...

C 遍歷子目錄檔案

winform介面設計 放置乙個textbox控制項 命名為 txtpath 兩個按鈕控制項 乙個btnselect,乙個btnstart 乙個顯示檔案列表label控制項 lblfilelist 還有乙個重要的folderbrowserdialog1控制項。1 stringbuilder strf...

合併子目錄下的檔案

比如在當前路徑下有這麼乙個檔案系統 0 mytest.en 1 mytest.en 2 mytest.en 3 mytest.en 4 mytest.en 5 mytest.en 6 mytest.en 7 mytest.en 8 mytest.en要把所有的mytest.en貼上到同乙個檔案內,可...