多個目錄的makefile
㈠ makefile中,當用-L 或者-I指定路徑時,如果需要用到多個路徑,是需要每個路徑都需要一個-L或者-I還是可以
如果需要用到多個路徑時,是每個路徑都需要一個-L或者-I選項,每個-L或者-I選項後面分內別跟一個路徑,各個-L或者-I選項容加路徑,之間用空格分割。比如:-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk
㈡ 怎麼編寫多個文件 夾 下的makefile
給文件指定一個路徑
㈢ c文件在不同目錄的情況makefile怎麼寫
c文件在復不同目錄的情況makefile怎麼寫
假設制有下面幾個c++文件:
wherewhen.h wherewhen.c
countdown.h countdown.c 包含了math.h, 需要連接庫文件
main.c 主函數, main.c 包含了兩個頭文件 wherewhen.h and countdown.h
1、第一種編譯方法:
g++ -Wall -g wherewhen.c countdown.c main.c -lm -o myprogram
生成可執行文件myprogram
2、第二中編譯方法, 分別編譯各個文件:
g++ -Wall -g -c wherewhen.c
g++ -Wall -g -c countdown.c
g++ -Wall -g -c main.c
g++ -g wherewhen.o countdown.o main.o -lm -o myprogram
㈣ 根據提供的Linux操作系統源碼中的Makefile結構,分析在工程多級目錄中存在多個makefile文件時編譯的順序如
如下這個例子(3個子目錄, 一個Makefile), 子目錄的編譯順序由這個Makefile控制.
sub_a sub_b sub_c Makefile
㈤ 請教多文件夾makefile問題
一般來講,一個項目會有多個模塊,源文件分別放在不同的目錄文件夾中。
這時候,Makefile就需要遍歷不同目錄下的C程序源文件,然後分別編譯成目標文件、然後再鏈接成可執行程序。
更深入的教程,可以參考Makefile工程實踐視頻教程,裡面對源文件、目標文件、庫分別使用目錄進行管理,存放在不同的文件目錄下,如何編寫Makefile實現上面的目的。
㈥ 多級目錄中存在多個makefile時,編譯的順序如何
一般來說,如果存在多級目錄,那麼再用makefile的時候,最好在每個目錄下也寫一個簡單的子內makefile,這樣在總容目錄下寫一個總的makefile,然後再總的makefile中調用子makefile,這樣寫起來就會比較清晰,編譯順序是要看你的總makefile中的步驟。
另外,如果你寫好之後,你也可以make -n一下,這樣也就可以看出make的編譯順序了!
也是剛開始學習makefile,共勉!
㈦ 如何為多目錄源文件建立makefile
c文件在來不同目錄的情況自makefile怎麼寫
假設有下面幾個c++文件:
wherewhen.h
wherewhen.c
countdown.h
countdown.c
包含了math.h,
需要連接庫文件
main.c
主函數,
main.c
包含了兩個頭文件
wherewhen.h
and
countdown.h
㈧ linux 一個目錄可以有幾個Makefile假如可以有多個,應該如何做
就如你說的這么弄……不過不加 -f xxxx 就是用默認的 Makefile。你寫的 make Makefile 會讓 make 去執行默認 makefile 裡面的 Makefile 段落的東西……
很多軟體都是這么實現的多 makefile 區別使用。
不過,這技術含量有點低……為什麼不去根據需要寫一個 configure 來生成 makefile ?
而且好像似乎 configure 和 makefile 都有軟體可以幫你生成……
㈨ linux下 一個項目(源文件位於多個文件夾或者子文件夾),怎麼編寫makefile文件滿意高分!
# Copyright (c) 2006 Unihz Technologies Co., LTD.
# Author: Raymond S. <[email protected]>
PROGRAM := write # 最後的可執行文件
SOURCES := $(wildcard *.cpp) #通配當前目錄下說有的.cpp文件
#SOURCES += $(wildcard src/*.cpp)
OBJS := $(patsubst %.cpp,%.o,$(SOURCES)) #把$(SOURCES)中的變數符合後綴是.cpp的全部替換成.o,
CC := gcc
#CFLAGS := -c -ggdb -Wall -DBUILD_TIME="\"`date`\"" -DDEBUG
CFLAGS :=
#INCLUDE := -I ../unihz -I ../config -I traffic_light
INCLUDE :=
#LIB := ../unihz/libunihz.a ../config/libconfig.a -lpthread
LIB := #庫文件
.PHONY: clean install
$(PROGRAM): $(OBJS)
$(CC) -o $@ $^ $(LIB)
%.o: %.cpp
$(CC) -c $^ $(CFLAGS) $(INCLUDE) # $@:當前規則的目的文件名, $<:依靠列表中的第 一個依靠文件,而 $^:整個依靠的列表(除掉了裡面所有重復的文件名)。
clean:
rm *.o src/*.o $(PROGRAM) -f
install: $(PROGRAM)
cp $(PROGRAM) ./bin/
拿這個去該改吧,比較通用的
㈩ makefile調用文件來自多路徑如何寫,希望具體一點,謝謝誒
你可復以使用vpath變數制,詳見:http://hi..com/msingle/blog/item/c44f6a38e69fc0ffb211c799.html
例如:
{{{class="makefile"
vpath %.c src/3rdparty:src:src/main
}}}
意思是,從3個目錄「src/3rdparty","src"以及"src/main"中搜索源文件%.c格式的。